django模板中的唯一值

时间:2015-09-18 12:36:54

标签: python django django-oscar

您好我正在使用django oscar并正在处理选择属性值的函数。我希望{{product.examination_filter}}成为没有重复项的值列表。

HTML:

<div class="portion">
        {% for product in products%}
                     {{product.examination_filter }}                   
        {% endfor %}                                    
</div>

Models.py

class Product(AbstractProduct):
from django.db import models
from oscar.apps.catalogue.abstract_models import AbstractProduct

def examination_filter(self):
    attributes = self.attribute_values.all()
    for attribute in attributes:
        if attribute.attribute.name == 'examination':
            return (attribute.value)

由于每个产品的for循环,我得到重复的值。如何在django模板语言中创建唯一的值列表?请注意,由oscar提供views.py,我在奥斯卡的html上获得产品(产品组)。请帮助我基本上希望这些值显示为网页上产品的过滤器。

1 个答案:

答案 0 :(得分:2)

您希望使用单独的查询来执行此操作:

attributes = ProductAttribute.objects.distinct()

attributes放入模板中,您应该有一个可以过滤的列表。您可能需要创建继承自ProductAttribute

的课程AbstractProductAttribute