【发布时间】:2015-08-29 08:39:02
【问题描述】:
我在 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 被认为比什么都少。但它让我感到困惑,因为它在本地服务器上以一种方式运行,而在远程服务器上以另一种方式运行。
什么可能导致这种差异?
【问题讨论】:
标签: python django python-3.x