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 に答える