如何获得Django Osacr产品类别?

时间:2017-06-12 05:48:37

标签: python django django-oscar

我有一份产品清单。我想获得与之相关的类别(类别)。 我所做的是:

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

但它返回错误:

'ManyRelatedManager' object is not iterable

我从这里得到了方法DJANGO OSCAR

2 个答案:

答案 0 :(得分:4)

获取ManyToManyField"类别的可迭代对象"如文档中所指定,您可以尝试调用.all()方法,例如:

for procat in p.get_categories().all():

答案 1 :(得分: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)