Если условие со значением поля не работает в шаблоне Django
В моделях у меня есть:
class Book(models.Model):
status = models.ForeignKey(
'BookStatus',
verbose_name='Status',
on_delete=models.RESTRICT,
null=True,
blank=True,
)
и
class BookStatus(models.Model):
name = models.CharField(
max_length=50,
unique=True,
)
def __str__(self):
"""String for representing the Model object."""
return self.name
В views у меня есть обычный Model DetailView:
class BookDetailView(LoginRequiredMixin, generic.DetailView):
login_url = '/accounts/login/'
model = Book
В шаблоне для этого подробного представления я хочу отображать кнопку только в том случае, если book.status не является "vorhanden". Я пытаюсь использовать это:
{% if book.status != 'vorhanden' %}
...
{% endif %}
но это также верно, если отображаемая книга имеет статус = vorhanden.
Я попробовал сделать наоборот:
{% if book.status == 'vorhanden' %}
...
{% endif %}
но это неверно, даже если отображаемая книга имеет статус = vorhanden
В чем моя ошибка?
Заранее благодарен Маттиас
book.status
это BookStatus
экземпляр, а не строка. Вам нужно сравнить book.status.name
.