在django中测试空/空字符串

mee*_*eep 8 python django null django-models

我有一个charfield,其中包括:

myString = models.CharField(max_length=50,null=True,blank=True)
Run Code Online (Sandbox Code Playgroud)

在我的许多对象中,当通过django管理界面创建时,此特定字符串通常会留空.在MySQL中,列是VARCHAR(50),默认值为NULL.

无论我在views.py中尝试做什么测试来检测空值,总是似乎评估为false是否为空白条目:

myString is None
myString==""
len(myString)==0
Run Code Online (Sandbox Code Playgroud)

如何区分此字段的空白和非空白值?

谢谢

编辑:

实际视图如下,我想仅在此字段不为空时才执行块.

if myObject.myString:
     #do something
Run Code Online (Sandbox Code Playgroud)

块总是执行,我已经尝试了所有上述测试空白字段的例子.

编辑2:

抓一点,if myObject.myString:确实有效.

小智 10

一些空字段返回空字符串,而其他字段返回None.但是,可以为空的布尔字段False在设置时将返回.这不会通过斯里卡的答案.这是一个更强大的解决方案:

if d in [None, '']:
    # This field is empty.
Run Code Online (Sandbox Code Playgroud)


Sri*_*aju 9

如果您d或者是None""然后简单地检查-

if d: 
    #do something
else:
    #do something else
Run Code Online (Sandbox Code Playgroud)