Django 1.6 {{MEDIA_URL}}在模板中有一个空白值

时间:2014-05-13 00:14:31

标签: django django-templates

我把头发分开了。已经完成了StackOverflow上现有的一些Q& A,但它并没有帮助我解决问题。事实上,我记得在我开发的前一次迭代中的某个时间,{{MEDIA_URL}}曾经工作正常。但现在突然空白了。

以下是我的environemnt / settings的详细信息(提供相关的代码片段):

在settings.py中,我定义了以下内容

MEDIA_URL = '/media/'
MEDIA_ROOT = '/path/to/dir'

在urls.py中:

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

在模板文件中:

<img src={{ MEDIA_URL }}{{ employee.photo }} alt="photo" align=left valign=top/>

在views.py中:

class EmployeeView(ListView):
    model = Employee
    template_name = 'CompanyApp/displayEmployees.html'
    context_object_name = 'EmployeeList'

在其他相关问题中,我读到人们谈论两种解决方案(它们似乎都不适合我)。更多详情如下:

建议的解决方案#1将以下内容添加到TEMPLATE_CONTEXT_PROCESSORS:

'django.core.context_processors.media'

但是当我这样做时,我的开发环境会出现以下错误:

[12/May/2014 23:37:34] "GET / HTTP/1.1" 500 59
Traceback (most recent call last):
  File "/usr/lib/python2.6/wsgiref/handlers.py", line 93, in run
    self.result = application(self.environ, self.start_response)
  File "/usr/lib/python2.6/site-packages/django/contrib/staticfiles/handlers.py", line 67, in __call__
    return self.application(environ, start_response)
  File "/usr/lib/python2.6/site-packages/django/core/handlers/wsgi.py", line 187, in   __call__
    self.load_middleware()
  File "/usr/lib/python2.6/site-packages/django/core/handlers/base.py", line 49, in lo  ad_middleware
    mw_instance = mw_class()
    TypeError: media() takes exactly 1 argument (0 given)

解决方案#2我看到被提议是在视图中返回RequestContext。但正如上面所见,我正在使用ListView,它会自动呈现给模板。

任何有关如何让django再次识别{{MEDIA_URL}}值的专家见解将非常感激。谢谢。

P.S。 BTW如何发布代码?它在说明中说我必须用四个空格作为前缀。但是,使用空格键为每行代码添加四个空格,一次一行,这对我来说很痛苦。有没有更简单的方法来实现这一目标?

2 个答案:

答案 0 :(得分:1)

根据你的说法,错误与此相关:

https://groups.google.com/forum/#!topic/django-brasil/f-5WwMA2bac上下文处理器列在MIDDLEWARE_CLASSES中,而不是TEMPLATE_CONTEXT_PROCESSORS。

答案 1 :(得分:0)

尝试在视图中添加context_instance = RequestContext(request)

def something(request):
   #your view goes here
   render_to_response('template.html',{#your_dict_items},context_instance=RequestContext(request))