python, если оценивается значение True для значения False - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть следующее поле объекта:

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 голосов
/ 15 ноября 2018

У вас есть строка в поле - "Ложь", а не Ложь.Что здорово для 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!"
...