Django模型字段:检查“if field is not None”与“if field”

时间:2014-09-15 23:18:00

标签: python django

之间是否存在有意义的差异
if self.pk is not None:

if self.pk:

在python django中检查模型字段时?

其他语言有各种不同的正确'检查变量为null,empty,nonexistant等的方法。

a)我不知道python如何处理支票

b)我不知道这在django模型字段中是否重要和/或有意义

2 个答案:

答案 0 :(得分:3)

第一项检查是检查主键是否为None。第二个是检查主键是truthy。所以是的,存在差异。

答案 1 :(得分:1)

Pkproperty,通常会解析为id。除此之外没有其他魔力。

因此,两个语句之间的唯一区别是Python如何处理它们。第一个明确地测试pk是否为None,而第二个将通过pk的任何"falsy" value

请注意pk通常不应评估为False,除非模型实例未保存到数据库中,因此实际上这两个语句应该非常相同。