Django template comparing string
Question:
I’m new with django. I’m stuck with the problem of comparing string in the template.
I have use ifnotequal tag to compare string. But it is not working.
I have try to output the variable:
{{ request.user.username }}
{{ article.creator }}
Here I compare:
{% ifnotequal request.user.username article.creator %}
{# output something #}
{% endifnotequal %}
But when I do the hardcode: It works.
{% ifnotequal "justin" "mckoy" %}
{# output something #}
{% endifnotequal %}
what is the problem? The article.creator
is coming from the database and the user.username
is from the request.
Can anyone help me with this issue?
Answers:
article.creator
is a User
and request.user.username
is a string. Try comparing request.user
instead.
Try this:
{% ifnotequal article.creator|stringformat:"s" request.user.username %}
For string compare in template use
{% if name == "someone" %}
............
............
{% endif %}
and for not equal
{% if name != "someone" %}
............
............
{% endif %}
{% ifequal material.unit 'U' %}
<p>are equals!<p/>
{% endifequal %}
Note that if you do not put spaces before and after ==, Django could not parse the expression.
{% if MyProd.Status == "Processing" %}
<button class="btn btn-outline-warning">{{MyProd.Status}}</button>
{% else %}
<button class="btn btn-outline-success">{{MyProd.Status}}</button>
{% endif %}
I’m new with django. I’m stuck with the problem of comparing string in the template.
I have use ifnotequal tag to compare string. But it is not working.
I have try to output the variable:
{{ request.user.username }}
{{ article.creator }}
Here I compare:
{% ifnotequal request.user.username article.creator %}
{# output something #}
{% endifnotequal %}
But when I do the hardcode: It works.
{% ifnotequal "justin" "mckoy" %}
{# output something #}
{% endifnotequal %}
what is the problem? The article.creator
is coming from the database and the user.username
is from the request.
Can anyone help me with this issue?
article.creator
is a User
and request.user.username
is a string. Try comparing request.user
instead.
Try this:
{% ifnotequal article.creator|stringformat:"s" request.user.username %}
For string compare in template use
{% if name == "someone" %}
............
............
{% endif %}
and for not equal
{% if name != "someone" %}
............
............
{% endif %}
{% ifequal material.unit 'U' %}
<p>are equals!<p/>
{% endifequal %}
Note that if you do not put spaces before and after ==, Django could not parse the expression.
{% if MyProd.Status == "Processing" %}
<button class="btn btn-outline-warning">{{MyProd.Status}}</button>
{% else %}
<button class="btn btn-outline-success">{{MyProd.Status}}</button>
{% endif %}