web-dev-qa-db-fra.com

Modèle Django comparant la chaîne

Je suis nouveau avec Django. Je suis coincé avec le problème de la comparaison de chaîne dans le modèle.

J'ai utilisé la balise ifnotequal pour comparer la chaîne. Mais ça ne fonctionne pas.

J'ai essayé de sortir la variable:

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

Ici je compare:

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

Mais quand je fais le hardcode: ça marche.

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

quel est le problème? Le article.creator provient de la base de données et le user.username provient de la demande.

Quelqu'un peut-il m'aider avec ce problème?

29
justin

article.creator est une User et request.user.username est une chaîne. Essayez de comparer request.user à la place.

18

Essaye ça:

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

Pour comparer les chaînes dans l'utilisation du modèle 

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

et pour pas égal

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