Django Python-在公共头中添加表值
可能试图做一些不可能的事情,但基本上,我创建了一个文件header.html,其中包括所有其他html页面,例如{%include“project/header.html”%} 这很好。挑战在于,在header.html上,我想放置一个下拉菜单,其中包含来自模型的值。如果我直接调用header.html,但不在其他页面内调用,则效果很好 header.htmlDjango Python-在公共头中添加表值,python,html,django,django-models,django-views,Python,Html,Django,Django Models,Django Views,可能试图做一些不可能的事情,但基本上,我创建了一个文件header.html,其中包括所有其他html页面,例如{%include“project/header.html”%} 这很好。挑战在于,在header.html上,我想放置一个下拉菜单,其中包含来自模型的值。如果我直接调用header.html,但不在其他页面内调用,则效果很好 header.html ... <ul> {% for club in clubs.all %} <li> <a href=&qu
...
<ul>
{% for club in clubs.all %}
<li> <a href="#">{{ club.name }}</a></li>
{% endfor %}
...
这可能吗?
提前感谢您可以为此写一封信。这是一个每次添加到请求中的方法
在应用程序(您使用的任何应用程序)中,您可以定义上下文处理器:
# app/context_processors.py
def all_clubs(request):
from app.models import Club
return {
'clubs': Club.objects.all()
}
现在,您不再需要在每次渲染调用中传递
clubs
。它将自动添加。由于QuerySet
s是惰性的,如果您的模板不使用clubs
非常感谢Willem。问题解决了。我一定要继续阅读Python文档!!
# app/context_processors.py
def all_clubs(request):
from app.models import Club
return {
'clubs': Club.objects.all()
}
# settings.py
# …
TEMPLATES = [
{
# …
'OPTIONS': {
'context_processors': [
# …
'app.context_processors.all_clubs'
]
}
# …
}
]