如何检查 django 表单数据是不是为 ​​None、''(空字符串)或 False

Posted

技术标签:

【中文标题】如何检查 django 表单数据是不是为 ​​None、\'\'(空字符串)或 False【英文标题】:How to check if django form data is None, ' ' (empty string), or False如何检查 django 表单数据是否为 ​​None、''(空字符串)或 False 【发布时间】:2013-11-16 14:52:33 【问题描述】:
if form.data['first_name'] is None:
    return True
else: 
   return False  

我正在尝试检查这个 first_name 字段是空白还是“无”。但是,如果该字段恰好为空白,则以下内容将返回 (u'') 以及 false。确定此特定表单字段是否为空白或无的任何其他解决方案?为什么会这样?

【问题讨论】:

你应该检查form.cleaned_data,而不是form.data 【参考方案1】:

问题在于通过检查:

 if form.data['first_name'] is None:

您只检查该值是否为无,而:

if not form.data['first_name']:

检查None'' 是否为空字符串或False

你还可以做的是:

return bool(form.data.get('first_name', False))

在这种情况下,如果form.data['first_name'] 不存在,则为return False,如果值为None'',则为return False,如果值为True'a string',则为return True.

【讨论】:

【参考方案2】:

或执行以下操作:-

if not form.data['first_name']:

firstname=FormData.getvalue('first_name')
if not firstname:
   <then let people know this shouldn't be empty or None>

【讨论】:

【参考方案3】:

你可以这样做:

if form.data['first_name']:

is None 专门检查None

【讨论】:

啊!谢谢,我以前做过,但是有这样的思维障碍

以上是关于如何检查 django 表单数据是不是为 ​​None、''(空字符串)或 False的主要内容,如果未能解决你的问题,请参考以下文章

Django Rest Framework - 提交的数据不是文件。检查表单上的编码类型

如何在 django 中查找会话是不是已过期

如何检查 django 表单中的字段类型?

python如何检查数据框中的值是不是为nan [重复]

检查日期是不是对选定的月份有效 Django 表单

将 django 表单中的布尔模型字段显示为单选按钮而不是默认复选框