Django ';对于';语句应使用格式';对于y中的x';:对于allPost1和allPost2以及allPost3和allPost4中的所有帖子
我有这么多的参数键,我想显示在模板上,然后我得到了一个错误Django ';对于';语句应使用格式';对于y中的x';:对于allPost1和allPost2以及allPost3和allPost4中的所有帖子,django,django-views,django-templates,Django,Django Views,Django Templates,我有这么多的参数键,我想显示在模板上,然后我得到了一个错误 for语句应使用for y中x的格式:for allPost1和allPost2以及allPost3和allPost4中的所有帖子 {allPost1、allPost2、allPost3和allPost4%中的所有帖子的% .... {%endfor%} def搜索1(请求): .... 参数={'allPost1':allPost1,'allPost2':allPost2,'allPost3':allPost3,'allPost4
for
语句应使用for y中x的格式
:for allPost1和allPost2以及allPost3和allPost4中的所有帖子
{allPost1、allPost2、allPost3和allPost4%中的所有帖子的%
....
{%endfor%}
def搜索1(请求):
....
参数={'allPost1':allPost1,'allPost2':allPost2,'allPost3':allPost3,'allPost4':allPost4,'query':query}
返回render(请求“home/search1.html”,params)
您应该在视图中链接iterables。视图实现业务逻辑,模板仅实现呈现逻辑
因此,我们可以通过以下方式实现这一点:
from itertools import chain
def search1(request):
# …
context = {
'allPost1': allpost1,
'allPost2': allpost2,
'allPost3': allpost3,
'allPost4': allpost4,
'allPosts': chain(allpost1, allpost2, allpost3, allpost4)
'query': query
}
return render(request, 'home/search1.html', context)
{% for post in allPosts %}
…
{% endfor %}
来自itertools导入链的
def搜索1(请求):
# …
上下文={
“allPost1”:allPost1,
“allPost2”:allPost2,
“allPost3”:allPost3,
“allPost4”:allPost4,
“allPosts”:链(allpost1、allpost2、allpost3、allpost4)
“查询”:查询
}
返回渲染(请求'home/search1.html',上下文)
然后,我们用以下方法呈现:
from itertools import chain
def search1(request):
# …
context = {
'allPost1': allpost1,
'allPost2': allpost2,
'allPost3': allpost3,
'allPost4': allpost4,
'allPosts': chain(allpost1, allpost2, allpost3, allpost4)
'query': query
}
return render(request, 'home/search1.html', context)
{% for post in allPosts %}
…
{% endfor %}
{%for allPosts%}
…
{%endfor%}
这也是相当奇怪的,你有四个iterables在视图中。通常,您可以通过单个查询“合并”iterables来检索帖子。您不能使用
和来链接您的“allPostx”列表/查询集,您可以链接|添加过滤器。你能分享更多你的观点吗?你需要创建4个不同的帖子列表吗?或者你能在你的观点中将它们合并成一个吗?