在Django模板中访问外键计数



我有两个models:FarmAnimalForeignKey关系。每个Farm包含x个动物。

我正在前端做一个表,每个farmfor循环。我如何显示每个农场的动物数量?模型:

class Farm(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, blank=True, null=True, default=None)
square_meter = models.IntegerField(blank=True, null=True)
friendly_name = models.CharField(max_length=24, blank=True)
kml = models.FileField(upload_to=user_directory_path_kml, null=True, blank=True)
class Animal(models.Model):
class Meta:
verbose_name_plural = "Animals"
farm = models.ForeignKey(Farm, on_delete=models.CASCADE, blank=True, null=True, default=None)
name = models.CharField(max_length=24, blank=True)
datetime = models.DateTimeField(blank=True, null=True, default=datetime.now)
tracking = models.BooleanField(default=False)
kg = models.IntegerField(blank=True, null=True)

模板:

{% for farm in farms %}
<tr>
<th scope="row">{{forloop.counter}}</th>
<td>{{farm.friendly_name}}</td>
<td>{{farm.square_meter}}</td>
<td>{{farm. }}</td> # Here I want animal count
</tr>
{% endfor %}

由于没有为Animal的场外键指定related_name,因此可以使用默认的外键管理器<class name>_set。这个管理器有一个count方法。所以

{{ farm.animal_set.count }}

应提供每个农场的动物数量。

相关内容

  • 没有找到相关文章

最新更新