跟踪django for循环中的变量值并避免重复
Keeping track of variable values in django for loop and avoid duplicates
我有一个 for 循环,它对不同的对象有许多相同的值。我试图仅跟踪唯一值。
`{% with cla.lodge_name|stringformat:"s" as hotel_stayed %}
{% if hotel_stayed not in unique_hotel_list %}<!-- How to do this?? in django template -->
{% for lodge in lodges %}
{% if lodge.lodge_name == hotel_stayed %}
<div>....</div>
`
我在创建可以附加值的列表时遇到问题,以便我可以检查 unique_hotel_list 中是否已经存在新值。我还尝试制作一个以名称为键,以值为计数的字典。如果计数大于 1,则无需继续。还查看了过滤器标签,但未能成功。
非常感谢您的帮助!
我强烈建议在 python 视图代码中执行此操作。
但是,如果您真的需要在模板中执行此操作,那么我能想到的相对简单的唯一方法是为所有酒店创建 html 并添加一个 "hidden" 标记到 unique_hotel_list 中的标记。所以你的 div 可以看起来像:
<div
{% for hotel in unique_hotel_list %}
{% ifequal hotel hotel_stayed %}
hidden
{% endifequal %}
{% endfor %}
>
</div>
这感觉就像你在要求 Y,而你的问题实际上是 X。
意思是:首先为什么你的列表中有重复项?它们 "valid" 并且您在其他地方需要它们吗?或者你真的需要一个没有重复的列表,但可能需要一个计数或分组(也称为聚合)。
我怀疑您正在对 Django 的 ORM 进行查询,该查询执行的连接会导致重复的行。如果您提供创建该列表的初始 Django 代码,您可能会得到原始问题的正确答案。
无论如何,这都足够复杂,可以在 Django 视图中完成。
代替(或附加)原始列表,将修改后的列表添加到模板上下文中。或者创建最适合您的标记需要的数据结构。
我有一个 for 循环,它对不同的对象有许多相同的值。我试图仅跟踪唯一值。
`{% with cla.lodge_name|stringformat:"s" as hotel_stayed %}
{% if hotel_stayed not in unique_hotel_list %}<!-- How to do this?? in django template -->
{% for lodge in lodges %}
{% if lodge.lodge_name == hotel_stayed %}
<div>....</div>
`
我在创建可以附加值的列表时遇到问题,以便我可以检查 unique_hotel_list 中是否已经存在新值。我还尝试制作一个以名称为键,以值为计数的字典。如果计数大于 1,则无需继续。还查看了过滤器标签,但未能成功。
非常感谢您的帮助!
我强烈建议在 python 视图代码中执行此操作。
但是,如果您真的需要在模板中执行此操作,那么我能想到的相对简单的唯一方法是为所有酒店创建 html 并添加一个 "hidden" 标记到 unique_hotel_list 中的标记。所以你的 div 可以看起来像:
<div
{% for hotel in unique_hotel_list %}
{% ifequal hotel hotel_stayed %}
hidden
{% endifequal %}
{% endfor %}
>
</div>
这感觉就像你在要求 Y,而你的问题实际上是 X。
意思是:首先为什么你的列表中有重复项?它们 "valid" 并且您在其他地方需要它们吗?或者你真的需要一个没有重复的列表,但可能需要一个计数或分组(也称为聚合)。
我怀疑您正在对 Django 的 ORM 进行查询,该查询执行的连接会导致重复的行。如果您提供创建该列表的初始 Django 代码,您可能会得到原始问题的正确答案。
无论如何,这都足够复杂,可以在 Django 视图中完成。 代替(或附加)原始列表,将修改后的列表添加到模板上下文中。或者创建最适合您的标记需要的数据结构。