Подтвердить что ты не робот

Элементы "многие-ко-многим" в шаблоне: проверьте, не являются ли они пустыми или нет.

Вопрос начинающего Django. У меня есть следующая модель:

class Leg(models.Model):
    startpoint = models.CharField(max_length=50, help_text="examples: 'Smith Elementary' or 'riders' houses'; less than 50 characters.")
    endpoint = models.CharField(max_length=50, help_text="examples: 'Smith Elementary' or 'riders' houses'; less than 50 characters.")
    riders = models.ManyToManyField(Rider, blank=True)
    drivers = models.ManyToManyField(Driver, blank=True)

Я делаю экземпляр модели, доступной в шаблоне, как "нога". В шаблоне я хочу посмотреть, есть ли в этом случае ЛЮБЫЕ связанные драйверы. Я пробовал {% if leg.drivers%}, но всегда кажется, что он оценивается True, независимо от того, есть ли какие-либо драйверы или нет для ноги.

Как проверить, есть ли на самом деле какие-либо драйверы? Извините за основной вопрос, но я не могу понять это.

4b9b3361

Ответ 1

{% if leg.drivers %} всегда будет истинным, потому что это будет от многих до многих менеджеров. Попробуйте {% if leg.drivers.all %} получить все связанные драйверы.

Ответ 2

Для этого создан тег для... пустого. Просто запустите leg.drivers.all, и если вы хотите отобразить какое-либо сообщение, если нет драйверов, вы можете сделать это в пустое предложение.