0

我在输入字段(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会抛出“真”,即如果我使用零作为输入,它是空白的。这是正确的,我可以克服吗?

4

1 回答 1

6

在 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,并使用它来检查将显示哪个字段集。

视图.py:

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

模板.html

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

但第一种方法总是更好。

于 2012-05-12T10:49:49.037 回答