Это кажется довольно простым, но я не могу найти хорошее решение из документов SO или Django (с использованием Django 1.10)
Я извлекаю объект модели в шаблоне и отображаю только те поля, которые имеют значения (т. е. не пустые или нулевые) или не пустые, если ManyToManyField.
Я не могу найти хороший способ сделать это, кроме как использовать множество if
и else
для проверки типа поля, а затем запускать соответствующее условие if
.
{% if model_name.field_name %}
всегда возвращает true
за ManytoManyField
с (поскольку это ManyRelatedManager
)
{% if model_name.field_name|length > 0 %}
всегда возвращает false
в течение ManytoManyField
с
{% if model_name.field_name.all %}
может нормально работать для ManyToManyFields
, но не для других (например, CharField
)
Есть ли один способ проверить, есть ли внутри поля какое-то полезное значение (будь то ManytoManyField
или простое CharField
)? Я могу прибегнуть к использованию нескольких if-else
, чтобы сначала проверить тип поля, а затем выполнить соответствующую проверку, но это кажется нелогичным, так как это похоже на обычный вариант использования для оправдания тега шаблона.
views.py
. Связанные объекты из ManyToManyField или ForeignKeyField должны вызываться каким-либо методом RelatedManager:all
или, может быть,filter
. - person cezar   schedule 10.05.2017