web-dev-qa-db-ja.com

Django {{MEDIA_URL}}空白@DEPRECATED

私はここ数時間、これに頭をぶつけてきました。 {{MEDIA_URL}}を表示できません

settings.pyで

..
MEDIA_URL = 'http://10.10.0.106/ame/'
..
TEMPLATE_CONTEXT_PROCESSORS = (
  "Django.contrib.auth.context_processors.auth",
  "Django.core.context_processors.media",
)
..

私の見解では私は持っています

from Django.shortcuts import render_to_response, get_object_or_404
from ame.Question.models import Question

def latest(request):
  Question_latest_ten = Question.objects.all().order_by('pub_date')[:10]
  p = get_object_or_404(Question_latest_ten)
  return render_to_response('Question/latest.html', {'latest': p})

それから私はbase.htmlとQuestion/latest.htmlを持っています

{% extends 'base.html' %}
<img class="hl" src="{{ MEDIA_URL }}/images/avatar.jpg" /></a>

しかし、MEDIA_URLは空白で表示されます。これが機能すると思われる方法だと思いましたが、おそらく私は間違っています。

更新最新バージョンはこれらの問題を修正します。

32
Atherion

メディアテンプレートコンテキストプロセッサを追加すると、作業も完了します

TEMPLATE_CONTEXT_PROCESSORS = (
    "Django.core.context_processors.request",
    "Django.contrib.auth.context_processors.auth",
    "Django.core.context_processors.media",
    "Django.core.context_processors.static",
)
22
Shrey

コンテキストプロセッサを処理するには、render_to_responseRequestContextを追加する必要があります。

あなたの場合:

from Django.template.context import RequestContext

context = {'latest': p}
render_to_response('Question/latest.html',
                   context_instance=RequestContext(request, context))

docs から:

context_instance

テンプレートをレンダリングするためのコンテキストインスタンス。デフォルトでは、テンプレートはContextインスタンス(辞書からの値で埋められます)でレンダリングされます。コンテキストプロセッサを使用する必要がある場合は、代わりにRequestContextインスタンスを使用してテンプレートをレンダリングします。

30
Sam Dolan

更新:Django 1.10ユーザーの場合、メディアと静的コンテキストプロセッサの両方がDjango.coreからDjango.templateにすでに移動されています。詳細については、次の記事をお読みください: https:// docs.djangoproject.com/en/1.10/ref/templates/api/#Django-template-context-processors-media

2
jonilyn2730

Direct_to_templateを使用することもできます。

from Django.views.generic.simple import direct_to_template
...
return direct_to_template(request, 'Question/latest.html', {'latest': p})
2
leplatrem

上記の質問に加えて、 photologue アプリケーションを確認することをお勧めします。テンプレートファイル内の直接リンクを回避し、代わりにオブジェクトを使用すると役立つ場合があります。 F.ex。:

<img src="{{ artist.photo.get_face_photo_url }}" alt="{{ artist.photo.title }}"/>
2
Volodymyr K.