2015-09-18 4 views
0

Привет Я работаю django oscar и работаю над функциями, которые выбирают значения атрибута. Я хочу, чтобы {{product.examination_filter}} был списком значений без дубликатов.уникальные значения в шаблоне django

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) 

Я получаю повторяющиеся значения из-за цикл по каждому продукту. Как я могу создать уникальный список значений в языке шаблонов django? Обратите внимание, что views.py обрабатывается oscar, и я получаю продукты (группу продуктов) на моем html из логики oscar. Пожалуйста, помогите, в основном, я хочу, чтобы эти значения отображались в виде фильтров для продуктов на веб-странице.

ответ

2

Вы хотели бы сделать это с помощью отдельного запроса:

attributes = ProductAttribute.objects.distinct() 

Поместите attributes в шаблон, и вы должны иметь список можно фильтровать по. Возможно, вам понадобится сделать класс ProductAttribute, который наследуется от AbstractProductAttribute.

+0

Так что это должно быть сделано в models.py или views.py? – Kishan