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 }}
.減少重復代碼。
添加回答
舉報