Шаблон Django сравнивает строки, возвращая false?

В моем шаблоне есть кнопка, которая должна быть видна только если

1 Пользователь зарегистрирован и; 2 Пользователь является тем, кто разместил объявление

но не отображается, даже если все вышеперечисленные условия были выполнены, поэтому в моем шаблоне есть следующее:

{% if user.username == "{{ users }}" %}
    <form action="listing" method="GET">
        <input class="btn btn-primary" type="submit" value="Close Listing" name="close">
    </form>
{% endif %}

где "{{users}}" - имя пользователя того, кто разместил объявление, и, таким образом, если оно совпадает, этот пользователь получает кнопку

views.py

listing = Listing.objects.all().filter(title=title).first()
user = listing.user

передавая его шаблону:

return render(request, "auctions/listing.html", {
     "users": user
})

Не могу найти, что я делаю неправильно

Измените свою логику;

Первый:

listing = Listing.objects.all().filter(title=title).first()

# Change variable name, you should name your variables with their purpose
author = listing.user

return render(request, "auctions/listing.html", {
     "author": author
})

Секунда:

# No need to use {{ }} in condition because `Jinja` does it for you.
{% if request.user == author %} # {% if request.user.username == author.username %}
    <form action="listing" method="GET">
        <input class="btn btn-primary" type="submit" value="Close Listing" name="close">
    </form>
{% endif %}

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