Django-计算模型中相同字段的数量

Django-计算模型中相同字段的数量,django,model,django-queryset,imagefield,Django,Model,Django Queryset,Imagefield,我是Django的新手,我正在建立一个电子商务网站(db:sqlite3)。每件商品都有1-5张图片上传。我这里有一个模型: 类项(models.Model): ''最多上载5张图像的项目模型'' image_1=models.ImageField(上传到class='items/')) image_2=models.ImageField(将_上传到='items/',blank=True) image_3=models.ImageField(上传到='items/',blank=True) i

我是Django的新手,我正在建立一个电子商务网站(db:sqlite3)。每件商品都有1-5张图片上传。我这里有一个模型:

类项(models.Model):
''最多上载5张图像的项目模型''
image_1=models.ImageField(上传到class='items/'))
image_2=models.ImageField(将_上传到='items/',blank=True)
image_3=models.ImageField(上传到='items/',blank=True)
image_4=models.ImageField(上传到='items/',blank=True)
image_5=models.ImageField(上传到='items/',blank=True)
为了为每个项目创建一个旋转木马(bootstrap4),我需要知道上传了多少图像。我的想法是在类中创建一个函数,找出这个模型中有多少
ImageField
,有多少不是空的

所以我的问题是:
1.是否有更好的方法创建ImageField,一种更动态的方法?

2.是否可以找出模型中非空的同一字段的编号

我将为图像创建一个单独的模型,并将其链接到项目模型。这将使过滤更容易,并使图像上传更灵活

class ItemImage(models.Model):
    item = models.ForeignKey(Item)
    image = models.ImageField(upload_to='items/')

class Item(models.Model):
    <--snip-->

    # we add a model property then do a reverse lookup in order to 
    # count images linked to the item object
    # this can then be accessed by item_obj.image_count
    @property
    def get_image_count(self)
        return self.itemimage_set.all().count()
class ItemImage(models.Model):
项目=型号。外键(项目)
image=models.ImageField(上传到class='items/'))
类别项(models.Model):
#我们添加一个模型属性,然后进行反向查找,以便
#计数链接到项目对象的图像
#然后可通过项目\对象\图像\计数来访问
@财产
def获取图像计数(自身)
返回self.itemimage\u set.all().count()

Item模型是否只有图像字段或其他字段?是的,还有许多其他字段我也想到了这一点,但我认为使用django admin在一个页面上的一个会话中创建一个项目要容易得多…您可以使用
Tablerinline
django类轻松/动态地添加同一页上有更多图像。你可以阅读更多关于这方面的内容