0

テンプレートに画像を表示できません。これは私のコードです:

設定.py

MEDIA_ROOT = os.path.join(DIRNAME, 'media')

MEDIA_URL = ''

STATIC_ROOT = os.path.join(DIRNAME, 'static')

STATIC_URL = '/static/'

# Additional locations of static files
STATICFILES_DIRS = (
    os.path.join(DIRNAME, 'my_static'),
)

私のモデルでは:

photo = models.ImageField(upload_to='media/images')

ウェブサイトのソース (Firefox では ctrl+U):

<img class="preview_image" src="static/images/test_1.png" ale="photo" />

画像を正しく表示するには?

4

2 に答える 2

1

MEDIA_URL次のように変更します。

MEDIA_URL = '/media/'

次に、次のようupload_toにパラメーターを変更します。

photo = models.ImageField(upload_to='images')

これをあなたに追加してくださいurls.py

from django.conf import settings
urlpatterns += patterns('',
    url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
)

次に、以下のようにテンプレートでアップロードされた画像にアクセスします。

<img src="{{ picture.photo.url }}">
于 2013-02-20T10:28:02.140 に答える
0

MEDIA_URL を変更することから始めます -

MEDIA_URL = '/media/'

次に、モデルの upload_to パラメータを変更します

photo = models.ImageField(upload_to='images')

DIRNAMEイメージ フォルダーを MEDIA_ROOT ディレクトリに追加します (変数が何であるかがわからないため、それがどこにあるのかわかりません)。

/path/to/your/media_root/images

- を使用して、テンプレートに写真を表示できるようになりました。

{% your_object.photo.url %}

テンプレートに URL をハードコーディングしないでください -

<img class="preview_image" src="static/images/test_1.png" ale="photo" />

する必要があります -

<img class="preview_image" src="{% your_object.photo.url %}" ale="photo" />

ImageFieldserving static filesに関するドキュメントをご覧ください。

モデルを (写真付きで) 保存すると、写真が にアップロードされ<MEDIA_ROOT>/<upload_to>ます。から http 経由で配信されhttp://localhost:8000/<MEDIA_URL>/<upload_to>ます。ただし、写真をモデルに保存しているため、データベースはファイルの場所への参照を保持しており、<img src="{% object.photo.url %}">.

于 2013-02-20T09:55:54.237 に答える