2015-09-18 1 views
0

Salut je travaille django oscar et travaille sur une fonction qui sélectionne les valeurs de l'attribut. Je veux que {{product.examination_filter}} soit une liste de valeurs sans doublons.valeurs uniques dans le modèle 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) 

j'obtiens des valeurs en double en raison de boucle sur chaque produit. Comment puis-je créer une liste unique de valeurs dans le langage de modèle django? Notez que views.py est traité par oscar et que j'obtiens des produits (groupe de produit) sur mon html de la logique d'oscar. S'il vous plaît aidez fondamentalement je veux que ces valeurs soient montrées comme filtres pour des produits sur la page Web.

Répondre

2

Vous voulez faire une requête distincte:

attributes = ProductAttribute.objects.distinct() 

Mettez attributes dans votre modèle et vous devriez avoir une liste que vous pouvez filtrer. Vous devrez peut-être créer la classe ProductAttribute, qui hérite de AbstractProductAttribute.

+0

Donc cela devrait être fait dans models.py ou views.py? – Kishan