Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django IntegerField在使用MySQL时将0检索为无值_Python_Mysql_Django - Fatal编程技术网

Python Django IntegerField在使用MySQL时将0检索为无值

Python Django IntegerField在使用MySQL时将0检索为无值,python,mysql,django,Python,Mysql,Django,Django已开始检索值为零的所有IntegerField,将其作为None而不是零 这在我所有的模型中都有发生。我最近更新了mysql连接器python,所以我不确定这是否是问题所在 有人知道会导致Django在我的所有模型中开始这样做的全局设置或bug吗 例如: class Brands(models.Model): brand_id = models.AutoField(primary_key=True) brand_name = models.CharField(unique

Django已开始检索值为零的所有IntegerField,将其作为None而不是零

这在我所有的模型中都有发生。我最近更新了mysql连接器python,所以我不确定这是否是问题所在

有人知道会导致Django在我的所有模型中开始这样做的全局设置或bug吗

例如:

class Brands(models.Model):
   brand_id = models.AutoField(primary_key=True)
   brand_name = models.CharField(unique=True, max_length=512)
   blacklisted = models.IntegerField()
   blacklisted_date = models.DateTimeField(blank=True, null=True)
   date_created = models.DateTimeField()

   class Meta:
       managed = False
       db_table = 'brands'
被列入黑名单的所有值都将被检索为无,而不是0。 它们作为0存储在数据库中

Django版本2.2.1

MySQL InnoDB


感谢您提供的帮助。

此错误的解决方法:向数据库选项添加
'use\u pure':True
。 这迫使mysql连接器python使用纯python连接,而不是C扩展,我相信这个bug存在于C扩展中,请参阅

或者,也可以在settings.py文件中进行设置


'OPTIONS':{'use_pure':True}

您最近是否更改了型号?您可以尝试
Python manage.py makemigrations
更新sechema吗?如何检查?您使用什么代码返回
None
?@Azy_Crw4282我没有更改大多数型号。我确实增加了一些新型号。我也在这个问题开始的时候运行了一个迁移,但是,我的所有模型都不是由django管理的。我只是尝试了一个新的makemigration和migration,但它没有修复anything@dirkgroten它在测试服务器上显示为“无”。我还覆盖了get_context_数据,添加了一个简单的打印,这些值被打印为NoneGreat,很乐意提供帮助
DATABASES = {
    'default': {
        'ENGINE': 'mysql.connector.django',
        'NAME': os.environ['MYSQL_DATABASE'],
        'USER': os.environ['MYSQL_USER'],
        'PASSWORD': os.environ['MYSQL_PASSWORD'],
        'OPTIONS': {
            'use_pure': True,
    }
}