' ValuesListQuerySet'对象没有属性' group_by'

时间:2015-12-29 06:41:51

标签: django database-design django-models django-views database-schema

我试图根据商店显示商店产品的尺寸和颜色:

store1: sizes=S,M,L colors=Red,blue

store2: sizes=L,Xl  colors=yellow,green

我尝试使用values_listgroup_by,但它会抛出错误

  

' ValuesListQuerySet'对象没有属性' group_by'

似乎group_by不是django的一部分。如何按上述方法对查询进行分组?

models.py

商店包含的产品可以有不同的尺寸和颜色。同样,产品可以在多个商店中使用。

class StoreProduct(models.Model):
    product = models.ForeignKey('products.Product')
    category = models.ForeignKey('products.Category')
    store = models.ForeignKey('Store')
    price = models.IntegerField(null=True , blank=True)
    quantity = models.IntegerField(null=True , blank=True)
    sizes = models.CharField(max_length=50 , null=True , blank=True)
    colors = models.CharField(max_length=50 , null=True , blank=True)

    def __unicode__(self):
        return self.product.title


class Store(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL , null=True , blank=True)
    StoreName = models.CharField(max_length=50 , default = '')
    items = models.ManyToManyField('products.Product', through=StoreProduct)
    brand = models.ForeignKey('products.Brand' , null=True , blank=True)
    City = models.CharField(max_length=50 , default = '')
    Area = models.CharField(max_length=50 , default = '')
    Address = models.TextField(max_length=500)
    MallName = models.CharField(max_length=50 , null=True , blank=True)
    slug = models.SlugField(blank=True ,unique=True)

views.py

 StoreProduct.objects.filter(product=productobj) \
   .values_list('sizes', flat=True) \
   .group_by('store')

1 个答案:

答案 0 :(得分:1)

您的StoreProduct代表特定商店中的Product,因此要显示哪个商店具有特定商品的尺寸和颜色&#34 ;您应该查询Product。类似的东西:

p1=products.Product() #object representing your particular product p1.storeproducts_set.all().value_list('store','sizes','colors')

当评估时,thish应该返回一个元组列表,其中包含" 哪个商店有哪些尺寸和颜色"产品p1