Beb*_*ebe 0 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 %}
Run Code Online (Sandbox Code Playgroud)
我认为if not user_date_table.june_11_steps抛出"True",即如果我使用零作为输入则它是空白的.这是正确的,我可以克服这个吗?
在python中,以下所有内容都被评估为False:
'', "", 0, [], {}, (), False, None
Run Code Online (Sandbox Code Playgroud)
因此,user_date_table.june_11_steps是0,然后{% if not user_date_table.june_11_steps %}将被评估True并且将执行该块.
更新:对于解决方案,
如果user_date_table在显示表单时没有在您的上下文中进行,或者如果它是空的,则可以使用
{% if not user_date_table%}
Run Code Online (Sandbox Code Playgroud)将另一个值传递给模板,例如display_result,并使用它来检查将显示哪个字段集.
views.py:
if request.POST: #saving the post data
display_result = True
Run Code Online (Sandbox Code Playgroud)
template.html
{% if not display_result %}
<form action="/steps_count/inde...
Run Code Online (Sandbox Code Playgroud)
但第一种方法总是更好.