Шаблон 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 %}