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

'ValuesListQuerySet' object has no attribute 'group_by'

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

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

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

我尝试将 values_listgroup_by 一起使用,但它抛出了错误

'ValuesListQuerySet' object has no attribute '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')

您的 StoreProduct 代表特定商店中的 Product,因此要获得“显示哪个商店有特定产品的尺寸和颜色”您应该改为查询 Product 。类似于:

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

在评估时应该 return 包含产品 p1.[=15= 的“哪个商店有哪些尺寸和颜色”的元组列表]