1 回答
TA贡献1805条经验 获得超9个赞
要回答您的问题,请添加以下内容作为模型方法:
class Advert(models.Model):
...
@property
def image_count(self):
image_count = 1
if self.image_2:
image_count += 1
if self.image_3:
image_count += 1
if self.image_4:
image_count += 1
if self.image_5:
image_count += 1
return image_count
在您的模板中:
{{ items.image_count }}
但是,这似乎不是一个很好的数据库模式。相反,(对我而言)拥有另一个模型会更有意义,例如
class AdvertImage(models.Model):
advert = models.ForeignKey(
Advert,
on_delete=models.CASCADE,
related_name='images',
)
image = models.ImageField()
这样您就可以:
拥有尽可能多的图像(但仍然强制每个广告的最大值,可能在表单验证或使用表单集)。
只需执行类似
advert.images.count()获取图像数量或在模板中的操作:{{ advert.images.count }}.减少重复代码。
添加回答
举报
