我在Django(v1.8)应用程序中有以下几行。
{% if failed < 5 %}
<div class="centered row">
<div class="ui error message six wide column">
<div class="content">
The username and password provided do not match. Please try again.
</div>
</div>
</div>
{% endif %}
failed
正在传递给模板,如下所示:
if 'failed_logins' in request.session:
request.session['failed_logins'] = request.session.get('failed_logins', 0) + 1
view = render(request, 'main/login.html', {
'page_title': PAGE_TITLE,
'failed': request.session['failed_logins']
})
我的本地主机和我的服务器failed
在{{ failed }}
模板中呈现时都显示为空。这是可以预料的,它在第一次加载时不存在。
但是在localhost上,这会导致{% if failed < 5 %}
显然评估为false,因为消息未显示。这对我来说很有意义,因为它在localhost上进行了测试,我认为它是定义的行为。
在服务器(AWS)上虽然{% failed < 5 %}
似乎评估为true。将显示该消息。这个也对我有意义,因为可能None
被认为比任何东西都要少。但它让我感到困惑,因为它在本地服务器上运行一种方式,在远程服务器上运行另一种方式。
可能导致这种差异的原因是什么?
答案 0 :(得分:0)
你是本地的Python 2,还是服务器上的Python 3?评估None的方式发生了变化:
https://docs.python.org/3/whatsnew/3.0.html#ordering-comparisons