【发布时间】:2018-11-15 18:06:58
【问题描述】:
我有以下对象字段:
is_vendor = models.BooleanField(default=False)
我有以下 if 语句:
print(customer.is_vendor) //This prints False
if customer.is_vendor:
print('im a vendor') //This prints even the value above is false
else:
print('im not a vendor')
为什么会这样?
【问题讨论】:
-
只是猜测(因此发表评论),
models.BooleanField是否实现了__bool__方法?当你运行bool(is_vendor)时会发生什么?如果它没有隐含的真实值,您可能需要在if customer.is_vendor ==...中明确说明,这只是一个有根据的猜测。 -
您在该字段中有一个字符串。这对 django 来说很酷,但对 python 来说却不是。试试
customer.is_vendor.to_python()?
标签: python if-statement boolean