是否有任何Django函数可以让我从数据库中获取对象,如果没有匹配项,则为None?
现在我正在使用类似:
foo = Foo.objects.filter(bar=baz)
foo = len(foo) > 0 and foo.get() or None
但这还不是很清楚,到处都是混乱的。
2
您知道如果不使用foo,就可以使用foo = foo [0]无
—
Visgean Skeloru 2012年
Python具有三元运算符,您不必使用布尔运算符。另外,
—
mustafa.0x 2013年
len(foo)
也是很糟糕的:“ 注意:如果您要做的就是确定集中的记录数,请不要在QuerySets上使用len()。使用SQL的SELECT COUNT在数据库级别处理计数会更有效。 (),而Django正是出于这个原因提供了count()方法。重写:foo = foo[0] if foo.exists() else None
@ mustafa.0x我认为这里不适用。在这里,检查计数将运行另一个查询。然后,我们将再次查询以获取实际数据。在这种情况下,过滤然后计数将更有意义...但比过滤并调用更有意义
—
MicronXD 2014年
first()
:P