我正在通過 Django 模型使用關系資料庫并具有以下類:
class EventSite(models.Model):
name = models.CharField(....etc.)
class Artist(models.Model):
jobsite = models.ForeignKey(JobSite, related_name="jobsite", null=True....etc.)
is_british = models.BooleanField(default=False)
class Concert(models.Model):
event = models.ForeignKey(EventSite, related_name="event_concert", null=True....etc.)
artists = models.ManyToManyField(Artist, related_name="artist_conerts", null=True....etc.)
因此,每場音樂會都與一個活動站點相關,并且可以有多個藝術家。在我的 html 模板中,我需要獲得與事件相關的每場音樂會上藝術家人數的總數。(見圖片)
所以我嘗試的 html 看起來像:
{% for site in event_sites %}
{{site.event_concert.all.artists.count}},
{% endfor %}
所以對于我的場景,我希望這會顯示給用戶:
12,3,0但它現在只是回傳一個空字串。
我似乎找不到解決方案,我懷疑這是因為我沒有正確的術語來描述我想要得到的東西。在某些情況下,我還必須只計算英國藝術家。任何幫助將不勝感激!
uj5u.com熱心網友回復:
我可以考慮在視圖或模型中以兩種方式進行。我的做法是在模型中創建方法。
...
class EventSite(models.Model):
name = models.CharField(max_length=100)
def get_site_artists(self):
artists = 0
for concert in self.event_concert.all():
artists = concert.artists.all().count()
return artists
...
然后像這樣在模板中使用它:
{% for site in event_sites %}
{{site.get_site_artists}},
{% endfor %}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/361130.html
標籤:Python 姜戈 django 模型 django-模板
上一篇:NoReverseMatch在/kwalificaties/反轉為'updatekwalificatie',未找到引數'('',)'。嘗試了
