gpt4 book ai didi

python - Django,模板上下文处理器

转载 作者:IT老高 更新时间:2023-10-28 21:45:07 28 4
gpt4 key购买 nike

我有一个奇怪的问题,我想使用上下文处理器添加一个全局查询。这就是我通过 following 做到的:

在我的应用程序中创建了一个 processor.py:

from myproject.myapp.models import Foo

def foos(request):
return {'foos': Foo.objects.all()}

在我的 setting.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 显示没有任何问题,但是我的 media_url 和其他上下文消失了。可能是什么问题

最佳答案

您需要添加 TEMPLATE_CONTEXT_PROCESSORS 的默认值。但是,您可以通过以下方式将上下文处理器附加到默认值,而不是硬编码这些值,这些值将绑定(bind)到特定版本的 Django:

from django.conf import global_settings
TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + (
"myapp.processor.foos",
)

确保在元组中包含尾随逗号,以便 Python 将其识别为元组。

关于python - Django,模板上下文处理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2246725/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com