2017-06-12 7 views
0

J'ai une liste de produits. Je veux obtenir la catégorie (catégories) à laquelle elle est associée. Qu'est-ce que je l'ai fait est:Comment obtenir les catégories de produit Django Osacr?

 pro = [] #holds list of all the products 
     for p in pro: 
      for procat in p.get_categories(): 
       print(procat) 

mais il revient avec l'erreur:

'ManyRelatedManager' object is not iterable 

Je suis la méthode d'ici DJANGO OSCAR

Répondre

4

Pour obtenir un objet itérable pour les ManyToManyField « catégories » comme spécifié dans les docs, vous pouvez essayer d'appeler la méthode .all(), par exemple:

for procat in p.get_categories().all(): 
0
from oscar.core.loading import get_model 
Product = get_model('catalogue', 'Product') 
ProductCategory = get_model('catalogue', 'ProductCategory') 
cat_ids = Product.objects.values_list('categories', flat=True) 
categories = ProductCategory.objects.filter(pk__in=cat_ids)