Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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
Python 如何将不同的数据从视图传递到模板?_Python_Django - Fatal编程技术网

Python 如何将不同的数据从视图传递到模板?

Python 如何将不同的数据从视图传递到模板?,python,django,Python,Django,我对Django来说是一个相对较新的人,刚刚遇到一堵墙,但我相信这对你们这些老兵来说将是一次轻松的散步。我有一个显示在模板表格中的项目列表。这没问题,我在视图中创建了一个对象(值列表),将其发送到模板并呈现表。但是,我还想在我的模板上显示一组显示为链接的count(),单击这些链接将进一步过滤显示的项目列表。例如,我的列表中可能有价格在25美元到50美元之间的项目,我的链接会显示有20个项目符合该标准。在中选择链接时,将向url.py发送请求,url.py将执行一个视图,该视图将进一步过滤查询集

我对Django来说是一个相对较新的人,刚刚遇到一堵墙,但我相信这对你们这些老兵来说将是一次轻松的散步。我有一个显示在模板表格中的项目列表。这没问题,我在视图中创建了一个对象(值列表),将其发送到模板并呈现表。但是,我还想在我的模板上显示一组显示为链接的
count()
,单击这些链接将进一步过滤显示的项目列表。例如,我的列表中可能有价格在25美元到50美元之间的项目,我的链接会显示有20个项目符合该标准。在中选择链接时,将向url.py发送请求,url.py将执行一个视图,该视图将进一步过滤查询集,然后再次呈现模板

如何将
count()
信息获取到模板中?我不认为我可以向模板发送两个单独的列表(对象)(至少我还不知道如何发送)。我想我需要在视图中获取计数,然后以某种方式将它们附加到我的列表对象中,但我不确定如何做到这一点,也不确定如何在模板中解析这些值。我希望计数与从列表对象生成的表分开显示,我有点担心我会弄乱我的表,现在工作正常


如果您对如何解决这个问题有任何建议,我将不胜感激,我也非常感谢代码示例,因为我仍然有点Python/Django代码的挑战。

您可以向模板发送任意数量的列表或对象。模板上下文只是一个字典,您可以根据需要向其中添加项

context = {
    'list1': my_first_list,
    'list2': my_second_list,
    ...
}

你的要求很模糊。代码有帮助。也。句号结束句子有帮助

我想我需要在视图中获取计数,然后以某种方式将它们附加到我的列表对象中

如何在模板中解析这些值

这里有一个方法。它不使用聚合函数。它们效率更高,但也更难理解

你的观点是这样的:

object_list = Model.objects.filter( some_attribute=some_value )
    
你在表格中这样做是为了查看计数

{% for obj in object_list %}
    <tr><td>{{obj.name}}</td> <td>{{obj.related_set.count}}</td><tr>
{% endfor %}

谢谢我曾考虑过这样做,但担心它的效率,因为数据集可能相当大,我得到了大量的计数。“担心效率”。永远不要“担心”。总是测量。和。如果您使用的是聚合,请研究Django中的聚合查询。谢谢Daniel,这正是我想要的。
<a href="{% url "some.view.function" obj.id %}">{{obj.related_set.count}}</a>