Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django{{MEDIA_URL}}blank@DEPRECATED_Django_Django Templates_Media Url - Fatal编程技术网

Django{{MEDIA_URL}}blank@DEPRECATED

Django{{MEDIA_URL}}blank@DEPRECATED,django,django-templates,media-url,Django,Django Templates,Media Url,在过去的几个小时里,我一直为这件事头疼。 我无法让{{MEDIA\u 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.

在过去的几个小时里,我一直为这件事头疼。 我无法让{{MEDIA\u 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>
{%extends'base.html%}
但媒体URL显示为空白,我认为这是它应该如何工作,但也许我错了

更新
最新版本修复了这些问题。

对于要处理的上下文处理器,您需要在
呈现到\u响应中添加
请求上下文

就你而言:

from django.template.context import RequestContext

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

上下文\u实例

上下文实例 要使用渲染模板,请执行以下操作。通过 默认情况下,将呈现模板 使用上下文实例(填充 字典中的值)。如果你需要 要使用上下文处理器,请渲染 带有请求上下文的模板 实例


您还可以使用“直接到”模板:

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

除了上面提供的问题,我还可以建议你们看看申请表。它可以帮助您避免模板文件中的直接链接,而是使用对象。 例如:


添加媒体模板上下文处理器也可以完成任务

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.core.context_processors.request",
    "django.contrib.auth.context_processors.auth",
    "django.core.context_processors.media",
    "django.core.context_processors.static",
)

更新:对于Django 1.10用户,媒体和静态上下文处理器都已经从Django.core的Django.template中移动了。请阅读以下文章了解更多信息:

Awww谢谢,我认为他们需要指出这一点,这对开始使用Django的人来说更好。媒体URL对于设计和可移植性都非常重要。这与
呈现给响应('Question/latest.html',context\u instance=RequestContext(request,context))
?这与1.2或1.3类似。你的方法现在是正确的。同样在当时,静态和媒体之间的区别也不清楚。这应该是公认的答案。在Django 1.8中很有魅力。是的,谢谢。为了在ajax上显示图像,我一直在拼命工作…/!\如果已弃用,则应使用模板dict和选项context\u processors:供英语使用者使用
TEMPLATE_CONTEXT_PROCESSORS = (
    "django.core.context_processors.request",
    "django.contrib.auth.context_processors.auth",
    "django.core.context_processors.media",
    "django.core.context_processors.static",
)