Доступ к графу по внешнему ключу в шаблоне Django

У меня есть два models: Farm и Animal с отношением ForeignKey. Каждый Farm содержит x животных.

Я делаю таблицу во фронтенде с циклом for из каждого farm. Как я могу показать количество животных в каждой ферме? модели:

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)

template:

 {% 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 %}

Поскольку вы не указали related_name для внешнего ключа фермы Animal, вы можете использовать менеджер внешних ключей по умолчанию <class name>_set. Этот менеджер имеет метод count. Таким образом

{{ farm.animal_set.count }}

необходимо предоставить количество животных для каждой фермы.

Вернуться на верх