Если условие со значением поля не работает в шаблоне 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.

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