我试图根据商店显示商店产品的尺寸和颜色:
store1: sizes=S,M,L colors=Red,blue
store2: sizes=L,Xl colors=yellow,green
我尝试使用values_list
和group_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')
答案 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
。