web-dev-qa-db-de.com

Django-Vorlage, die einen String vergleicht

Ich bin neu bei Django. Ich stecke bei dem Problem, String in der Vorlage zu vergleichen.

Ich habe das ifnotequal-Tag zum Vergleichen von Zeichenketten verwendet. Aber es funktioniert nicht.

Ich habe versucht, die Variable auszugeben:

{{ request.user.username }} 
{{ article.creator }}

Hier vergleiche ich:

{% ifnotequal request.user.username article.creator %}
    {# output something #}
{% endifnotequal %}

Aber wenn ich den Hardcode mache: Es funktioniert.

{% ifnotequal "justin" "mckoy" %}
    {# output something #}
{% endifnotequal %}

worin besteht das Problem? Der article.creator kommt aus der Datenbank und der user.username stammt aus der Anfrage.

Kann mir jemand bei dieser Ausgabe helfen?

29
justin

article.creator ist eine User und request.user.username ist eine Zeichenfolge. Vergleichen Sie stattdessen request.user.

Versuche dies:

{% ifnotequal article.creator|stringformat:"s" request.user.username %}
43
sandeep sangwan

Für Stringvergleich bei der Verwendung von Vorlagen 

{% if name == "someone" %}
   ............
   ............
{% endif %}

und für nicht gleich

{% if name != "someone" %}
   ............
   ............
{% endif %}
31
Nauman Tariq
{% ifequal material.unit 'U' %}
    <p>are equals!<p/>
{% endifequal %}
0
hopieman