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

Django model field: Checking “if field is not None” vs. “if field”

本问题已经有最佳答案,请猛点这里访问。

两者之间有意义的区别吗

1
if self.pk is not None:

1
if self.pk:

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

其他语言有各种不同的"正确"方法来检查变量是否为空、空、不存在等等。

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

b)我不知道这在Django模型领域中是否重要和/或有意义。


第一个检查是检查主键是否不是None。第二步是检查主键是否正确。所以是的,有区别。


Pk是一种通常解析为id的属性。除此之外没有别的魔法。

所以这两个语句之间的唯一区别就是Python如何处理它们。第一个测试明确地测试了Pk是否为无,而第二个测试将通过Pk的任何"不稳定"值。

注意,除非模型实例没有保存到数据库中,否则Pk通常不应计算为False,因此在实践中,这两条语句应该相当。