我在Django中使用if语句有一个奇怪的情况。似乎django没有看到它,我不知道为什么
我的模板文件:
<div class="article-intro">
<p>{{ article.jezyk }} </p>
{% if article.jezyk = 'EN' %}
{% for sala in sala %}
<div>{{ sala }}</div>
{%endfor %}
{% endif %}
</div>
看起来像这样:
正如我们在图片标签上看到的那样:
{{ article.jezyk }}
返回值'EN'
为什么然后“if statment”不起作用?有什么解释吗?
我的views.py
from django.shortcuts import render_to_response
from articles.models import Article
from sale.models import Sala
from godzina.models import Godzina
from jezyk.models import Jezyk
def articles(request):
return render_to_response('articles.html',{'articles' : Article.objects.all(),'godzina': Godzina.objects.all(),'sala': Sala.objects.order_by('jezyk') })
答案 0 :(得分:2)
您再次没有提供回答问题所需的信息,即模型。但是我们从您之前的问题中知道Article.jezyk是ForeignKey。当您在模板中输出FK字段时,它将打印unicode方法的结果,但这并不意味着它们实际上是相等的。您需要比较字段本身,例如:
{% if article.jezyk.language = 'EN' %}
或包含语言代码的Jezyk模型上的任何字段。
答案 1 :(得分:1)
ifequal
:e.g
{% ifequal article.jezyk 'EN' %}
<!-- Ur code -->
{% endifequal %}
==
运算符e.g。
{% if somevar == "x" %}
This appears if variable somevar equals the string "x"
{% endif %}
文档:link
sala
变量用于迭代器。e.g:
{% for i in sala %}
<div>{{ i }}</div>
{% endfor %}