在Django中,零(整数)是空白还是空?

时间:2012-05-12 10:42:46

标签: python django templates

我在输入字段(IntegerField)中尝试了整数零,但是在提交后,该零似乎从未显示过。

这是我模板的一部分:

{{user_date_table.june_11}}
{% if not user_date_table.june_11_steps %}
 <form action="/steps_count/index/{{ username }}/table/" method="post">
  {% csrf_token %}              
  <input type="text" autocorrect="off" autocapitalize="off" name="june_11_steps"/>
  <input type="submit" value="Add"/>
 </form>
{% else %}      
 {{user_date_table.june_11_steps}}
{% endif %}

我认为if not user_date_table.june_11_steps抛出“True”,即如果我使用零作为输入则为空。这是正确的,我可以克服这个吗?

1 个答案:

答案 0 :(得分:5)

在python中,以下所有内容都被评估为False

'', "", 0, [], {}, (), False, None 

因此,user_date_table.june_11_steps为0,然后{% if not user_date_table.june_11_steps %}将被评估True,并且该块将被执行。

更新:对于解决方案,

  1. 如果user_date_table在显示表单时未在您的上下文中发生,或者如果它为空,则可以使用

    {% if not user_date_table%}
    
  2. 将另一个值传递给您的模板,例如display_result,并使用它来检查将显示哪个字段集。

  3. views.py:

    if request.POST: #saving the post data
        display_result = True
    

    template.html

    {% if not display_result %}
        <form action="/steps_count/inde...
    

    但第一种方法总是更好。