在Django中查询产品图像

问题描述

有人可以帮助我获取产品图片吗?

我有以下两种模型:

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()

其中myproductProduct对象。

如果只有产品的主键,则可以使用以下方法进行过滤:

Images.objects.filter(product_id=id_of_product)

注意:通常,Django模型的名称为单数,因此Image代替了 Images