如果语句在模板文件中不起作用
Posted
技术标签:
【中文标题】如果语句在模板文件中不起作用【英文标题】:If statment doesn't work in a template file 【发布时间】:2015-04-23 19:31:04 【问题描述】:我对 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 语句”不起作用?有什么解释吗?
我的意见.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') )
【问题讨论】:
因为它是% if article.jezyk == 'EN' %
- 注意==
... 文档说:if 标签也可以使用运算符 ==、!=、、 = 并且其中的工作如下: - ref: docs.djangoproject.com/en/1.7/ref/templates/builtins/#operator
【参考方案1】:
再一次,您没有提供回答问题所需的信息,即模型。但是,我们从您之前的问题中知道 Article.jezyk 是 ForeignKey。当您在模板中输出 FK 字段时,它将打印 unicode 方法的结果,但这并不意味着它们实际上是相等的。您需要比较字段本身,例如:
% if article.jezyk.language = 'EN' %
或包含语言代码的 Jezyk 模型上的任何字段。
【讨论】:
【参考方案2】:-
试试这个
ifequal
:
例如
% ifequal article.jezyk 'EN' %
<!-- Ur code -->
% endifequal %
-
使用
==
运算符
例如
% if somevar == "x" %
This appears if variable somevar equals the string "x"
% endif %
文档:link
-
在 for 循环中使用其他变量名。相同的
sala
变量用于迭代器。
例如:
% for i in sala %
<div> i </div>
% endfor %
【讨论】:
见:***.com/questions/11733651/…以上是关于如果语句在模板文件中不起作用的主要内容,如果未能解决你的问题,请参考以下文章