我有一个奇怪的问题,我想使用上下文处理器添加一个全局查询。 我就是这样通过following做到的:
在我的应用程序中创建了一个processor.py:
from myproject.myapp.models import Foo
def foos(request):
return {'foos': Foo.objects.all()}
在seting.py的末尾,我添加了以下内容:
TEMPLATE_CONTEXT_PROCESSORS = ('myapp.processor.foos',)
最后,我认为:
def index_view(request):
return render_to_response('index.html', {}, context_instance=RequestContext(request))
在我的index.html模板上:
<select id="select_foo">
{% for foo in foos %}
<option value="/{{ foo.slug }}">{{ foo.name }}</option>
{% endfor %}
</select>
最后是我的网址:
(r'^$', 'myapp.views.index_view'),
我的foos显示没有任何问题,但是我的媒体url和其他上下文都没有了。 有什么问题
当您指定此选项时:
在设置文件中,您将重写Django的default context processors。要扩展列表,需要在设置中包含默认值:
注意,上面的设置是django 1.1的默认设置(加上处理器)。
这里是我为Django 1.3工作的地方
您需要添加模板上下文处理器的默认值。但是,您可以通过以下方法将上下文处理器附加到默认值,而不是硬编码那些将绑定到特定版本Django的值:
确保在元组中包含尾部逗号,以便Python将其识别为元组。
相关问题 更多 >
编程相关推荐