Python Django {% if usuario.username == user %} не работает :(
Мне нужна помощь. Я хочу перечислить всех пользователей, избегая логина пользователя.
если я печатаю user= juan если я напечатаю usuario.username=juan Есть одна и та же строка
{% if usuario.username == user %}
Nothing
{% else %}
<tr><td>
{{usuario.username}}
<img src="{% static 'assets/img/icono_writeMSJ.png' %}" height="30px">
</td>
</tr>
{% endif %}
если я изменю, например
{% if usuario.username == 'juan' %}
Nothing
{% else %}
<tr><td>
{{usuario.username}}
<img src="{% static 'assets/img/icono_writeMSJ.png' %}" height="30px">
</td>
</tr>
{% endif %}
это работает нормально, почему? :(
)user - это объект. Стрингизируйте его. Это должно сработать
{% if usuario.username == user|stringformat:"s" %}
======== исключен текущий вошедший пользователь ========
========= in HTML ==============
<h3>All Users list</h3>
{% if user.is_authenticated %}
<ul>
{% for i in all_users %}
<li>{{i.username}}</li>
{% endfor %}
</ul>
{% else %}
<h4>Please login first</h4>
======= in views.py ===========
def HomeView(request):
all_users = User.objects.all().exclude(id=request.user.id).values('username')
return render(request,'index.html',{'all_users':all_users})
Наконец, проблема заключалась в том, что пользователь - это объект. По этой причине нельзя сравнивать с этой точки зрения.
{% if usuario.username == user %}
правильным способом является
{% if usuario.username == user.username %}
>