python如果评估True为False值

时间:2018-11-15 18:06:58

标签: python if-statement boolean

我有以下对象字段:

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')

为什么会这样?

1 个答案:

答案 0 :(得分:2)

您在字段中有一个字符串-“ False”,而不是False。对于Django来说这很酷,但是对于python来说却不是。尝试使用customer.is_vendor.to_python()。那会把它弄成一个布尔值。

if "False": print 'True!' # is True
if False: print 'True!'   # Nope.

if customer.is_vendor.to_python():
   print "Is a vendor!"