Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django ';对于';语句应使用格式';对于y中的x';:对于allPost1和allPost2以及allPost3和allPost4中的所有帖子_Django_Django Views_Django Templates - Fatal编程技术网

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个不同的帖子列表吗?或者你能在你的观点中将它们合并成一个吗?