0

画像はmysiteファイルにあるファイル「upload」にアップロードできます。これが私のコードsetting.pyです。

MEDIA_ROOT = 'C:/Python26/mysite/upload/media/'
MEDIA_URL = '/media/'

url.pyで

urlpatterns = patterns('',

   url(r'^media/(?P<path>.*)$', 'django.views.static.serve',
            {'document_root': settings.MEDIA_ROOT,}),
)

テンプレート内

 <img src="{{MEDIA_URL}}/{{pic}}" alt="Profile Picture" width="200"/>

ただし、画像はまだWebサイトに表示されませんが、実際にはアップロードファイルに保存されています。誰かがそれを手伝ってくれる?ありがとう

4

2 に答える 2

1

与えられた:

MEDIA_URL = '/media/'

そして、次のテンプレートコード:

<img src="{{MEDIA_URL}}/{{pic}}" alt="Profile Picture" width="200"/>

画像srcはおそらくではありませんでし/upload/Desert.jpgた。パスは。で始まる必要があります/media/。多くMEDIA_URLの場合、未定義であり、の値はpicですupload/Desert.jpg。その場合は、メディアテンプレートコンテキストプロセッサが不足している可能性があります。次のように変更TEMPLATE_CONTEXT_PROCESSORSします。

TEMPLATE_CONTEXT_PROCESSORS = (
    ...
    'django.core.context_processors.media',
)

これMEDIA_URLにより、テンプレートコンテキストで使用できるようになります。次に、その後のスラッシュも削除する必要があります。そうしないと、2つ(MEDIA_URLスラッシュで終了)になります。つまり、次のようになります。

それ以外の:

{{ MEDIA_URL }}/{{ pic }}

使用する:

{{ MEDIA_URL }}{{ pic }}

アップデート

それでもの値が得られない場合MEDIA_URLは、おそらくを使用していませんRequestContextRequestContextテンプレートコンテキストプロセッサが処理を実行するには、ビューのコンテキストをラップする必要があります。

を使用している場合はrender_to_response、次のようにします。

return render_to_response('template.html', { ... context here ... }, context_instance=RequestContext(request))

Django 1.3以降を使用している場合は、次のrender方法を使用できます。これにより、次のように自動的に実行されます。

return render('template.html', { ... context here ... })
于 2012-06-05T18:44:05.140 に答える
0

設定では、これは私にとってはうまくいきませんでした、

TEMPLATE_CONTEXT_PROCESSORS = (
    ...
    'django.core.context_processors.media',
)

django.core....私が使用する代わりにdjango.template....

TEMPLATE_CONTEXT_PROCESSORS = (
    ...
    'django.template.context_processors.media',
)
于 2020-05-06T11:59:22.193 に答える