我有两个models
:Farm
和Animal
与ForeignKey
关系。每个Farm
包含x
个动物。
我正在前端做一个表,每个farm
的for
循环。我如何显示每个农场的动物数量?模型:
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 }}
应提供每个农场的动物数量。