问题描述
我有以下两种模型:
class Product(models.Model):
name=models.CharField(max_length=200,null=True)
price=models.DecimalField(max_digits=7,decimal_places=2)
description=models.TextField(blank=True,null=True)
image=models.ImageField(blank=True,null=True,default="images/default.jpg")
size=models.ManyToManyField(Size)
digital=models.BooleanField(default=False,blank=True)
categories = models.ForeignKey(Category,on_delete=models.SET_NULL,blank=True,null=True)
objects = models.Manager()
class Images(models.Model):
product=models.ForeignKey(Product,blank=True)
title=models.CharField(max_length=200,blank=True)
image=models.ImageField(blank=True,null=True)
def __str__(self):
return str(self.title) if self.title else 'image'
在我的views.py中,我使用此查询获取特定产品的图像,但我获取了所有产品的所有图像
query = Images.objects.all().query
query.group_by=['product']
img=QuerySet(query=query)
解决方法
您只需使用以下方法即可获取单个产品的Product
对象:
myproduct.images_set.all()
其中myproduct
是Product
对象。
如果只有产品的主键,则可以使用以下方法进行过滤:
Images.objects.filter(product_id=id_of_product)
注意:通常,Django模型的名称为单数,因此
Image
代替了。Images