您好我正在使用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上获得产品(产品组)。请帮助我基本上希望这些值显示为网页上产品的过滤器。
答案 0 :(得分:2)
您希望使用单独的查询来执行此操作:
attributes = ProductAttribute.objects.distinct()
将attributes
放入模板中,您应该有一个可以过滤的列表。您可能需要创建继承自ProductAttribute
。
AbstractProductAttribute