首页 > 解决方案 > 如何控制 Django 模型中的对象数量

问题描述

我有以下模型:

# Product Photos       
class Photo(models.Model):
    title = models.CharField(max_length=255, blank=True)
    product    = models.ForeignKey("Product", null=False, default="0", on_delete=models.CASCADE, related_name='photos')
    file       = ProcessedImageField(upload_to=get_upload_path,
                                    max_length=500,
                                    null=True,
                                    blank=True,
                                    processors=[ResizeToFill(800, 450)],
                                    options={'quality': 80})
    #height_field = models.IntegerField(default=0, null=True)
    #width_field = models.IntegerField(default=0, null=True)
    uploaded_at = models.DateTimeField(auto_now_add=True)

如您所见,有一个产品外键。我想要做的是,防止这个照片模型接受不超过 5 张来自同一产品的照片。

基本上,每个产品应该有5张或更少的照片。如何从照片模型中控制它?

标签: django

解决方案


尝试在保存方法中查找多少张照片,

def __save__(self,**kwargs,*args):
   if product.photos.count()>5
      pass
    else:
        save()

语法可能有问题,但请根据您的业务逻辑进行调整


推荐阅读