gpt4 book ai didi

python - Django IntegerField 在使用 MySQL 时检索 0 作为 None 值

转载 作者:行者123 更新时间:2023-12-04 10:31:57 24 4
gpt4 key购买 nike

Django 已经开始检索我所有的 IntegerField 零值作为 None 而不是作为零。

这发生在我所有的模型中。我最近更新了 mysql-connector-python 所以我不确定这是否可能是问题所在。

有没有人知道会导致 Django 在我的所有模型中开始执行此操作的全局设置或错误?

例子:

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'

blacklisted 的值都被检索为 None 而不是 0。
它们在数据库中存储为 0。

Django 版本 2.2.1

MySQL InnoDB

感谢您的任何帮助,您可以提供。

最佳答案

此错误的解决方法:添加 'use_pure': True到数据库选项。
这会强制 mysql-connector-python 使用纯 python 连接而不是 C 扩展名,我相信错误存在,请参阅 here

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,
}
}

或者,您可以在 settings.py 文件中进行设置
'OPTIONS': {'use_pure': True }

关于python - Django IntegerField 在使用 MySQL 时检索 0 作为 None 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60379449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com