Python MySQL Django模型中的布尔字段?
在Django。当我检索它时,我得到0或1。我不应该是假的还是真的?有没有办法实现这种行为Python MySQL Django模型中的布尔字段?,python,mysql,django,boolean,Python,Mysql,Django,Boolean,在Django。当我检索它时,我得到0或1。我不应该是假的还是真的?有没有办法实现这种行为 >>> u=User.objects.get(pk=1) >>> u.is_active 1 >>> u.is_active==1 True >>> 布尔列返回1或0的原因在您的问题的链接上。您可以为您的模型创建自己的方法来为您计算: 类用户(models.Model): 活动状态=models.BooleanField(默认值=1
>>> u=User.objects.get(pk=1)
>>> u.is_active
1
>>> u.is_active==1
True
>>>
布尔列返回1或0的原因在您的问题的链接上。您可以为您的模型创建自己的方法来为您计算:
类用户(models.Model):
活动状态=models.BooleanField(默认值=1)
def处于活动状态(自):
返回布尔值(自激活状态)
然后,对该字段执行的任何测试都可以只引用该方法:
>>u.处于活动状态()
真的
您甚至可以将其设置为属性:
类用户(models.Model):
活动状态=models.BooleanField(默认值=1)
@财产
def处于活动状态(自):
返回布尔值(自激活状态)
这样,类的用户甚至不必知道它是作为方法实现的:
>>u.处于活动状态
真的
以下是适用于NullBooleanField
的上述方法:
result = models.NullBooleanField()
def get_result(self):
if self.result is None:
return None
return bool(self.result)
是否有一种情况下,您预计这将导致不同的行为仅仅基于类型
>>> 1 == True
True
>>> 0 == False
True
>>> int(True)
1
>>> int(False)
0
您的示例应该是:u.is_active==True是否可以将布尔字段隐式转换为True或False而不是1或0Juanjo,我列出了如何实现True或False结果的示例。Rama,我想通过修改Django的模型代码应该是可能的,但我不知道有这样的解决方案。。在提供的链接上。