0

嗨,我正在工作 django oscar,并正在研究一个选择属性值的函数。我希望 {{product.examination_filter }} 是没有重复的值列表。

HTML:

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

模型.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 模板语言中创建唯一的值列表?请注意,views.py 由 oscar 处理,我正在从 oscar 逻辑获取我的 html 上的产品(产品组)。请基本上帮助我希望这些值显示为网页上产品的过滤器。

4

1 回答 1

2

你会想用一个单独的查询来做到这一点:

attributes = ProductAttribute.objects.distinct()

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

于 2015-09-18T14:51:41.793 回答