2017-08-09 71 views
-3

我在views.py代码:django模板语言判断是否为异常。

def home(request): 
    return render(request, 'home.html', {'age':37}) 

这是Django模板例如if模板判断:

<tr> 
    <td> 
     {% if age > 25 %} 
     <span> >25 </span> 
     {% elif age > 30 %} 
     <span> >30 </span> 
     {% elif age > 35 %} 
     <span> >35 </span> 
     {% else %} 
     <span> other </span> 
     {% endif %} 
    </td> 
</tr> 

但是但是如果我刷新safira那里所有打印>25,不>35,为什么?

+1

第一if语句是真实的。你能指望什么?只要声明成立,它就会停止迭代。 – hansTheFranz

+0

你写的逻辑是错误的
' – MegaBytes

回答

2

逻辑的顺序应该是如下较小:

<tr> 
    <td>{% if age > 35 %} 
      <span> >35 </span> 
     {% elif age > 30 %} 
      <span> >30 </span> 
     {% elif age > 25 %} 
      <span> >25 </span> 
     {% else %} 
      <span> other </span> 
     {% endif %} 
    </td> 
</tr> 
0

你没有说明如果不够好。脚本将从上到下遍历if,第一个是True将执行属于该if语句的代码,然后退出if块。所以你的第一个'如果'是真的,因为37大于25并且会退出,忽略其他elifs。

这本来是更好,如果你的状态条件更精确地大于x和除y等

+0

嗯,我看到接受的答案没有解释,但只是重写了代码,并且这是被投下来的,同时提供了一个解释,将代码的写入留给提问者。不知道为什么这需要downvote,请解释。 – mke21

+0

不是一个低调的选民,但你实际上没有提供解决方案,只是确定了问题所在。 – asongtoruin

+0

“但是,如果我刷新safira那里所有打印> 25,而不是> 35,为什么?” 在我看来,这是个问题。 – mke21