python - django中空条件的完整性错误
问题描述
我是 django 新手,正在尝试运行简单的应用程序,目前我正在从 3rd 方 api 获取数据,并尝试将该 json 保存到我的数据库中,所以下面是我的模型类。
class CollisionDetails(models.Model):
crossStreetName = models.CharField(max_length=30)
onStreetName = models.CharField(max_length=40, default='')
offStreetName = models.CharField(max_length=40, default='')
numberOfPersonsInjured = models.IntegerField(default=0)
def json_to_class(self, json_data, city):
collision_detail = json_data #json.loads(json_data)
self.crossStreetName = collision_detail.get('cross_street_name')
self.onStreetName = collision_detail.get('on_street_name', 'Unspecified')
self.offStreetName = collision_detail.get('off_street_name', 'Unspecified')
但是当我试图保存我的对象时,它给了我完整性错误说
django.db.utils.IntegrityError: (1048, "Column 'crossStreetName' cannot be null")
但我也检查了我的数据库,我没有保留非空条件,我不确定为什么 django 将其视为非空 = True,这是默认行为吗?
解决方案
是的,Django 模型的默认行为是null=False
,
根据文档,
null:如果为 True,Django 会将空值作为 NULL 存储在数据库中。默认为假。
你可以在这里阅读官方文档https://docs.djangoproject.com/en/3.1/ref/models/fields/
推荐阅读
- sql - 插入行的 SQL 触发器
- azure-sql-database - Azure 逻辑应用不会侦听某些 SQL Server 表的更新
- c# - HostAuthenticationFilter 有什么作用?
- vba - Excel日期表与VBA的交集
- python - AttributeError: 'NoneType' 对象没有属性 'lower' 和警告
- numpy - sklearn 精确召回分数是否应该为 1D 和 2D 输入提供不同的输出?
- java - 有没有办法避免在百里香安全中使用硬编码角色?
- java - 查询类型错误
- google-cloud-platform - 无法从数据流中的 GCS 读取我的配置文本文件(列名)
- visual-studio-2015 - vsinstr.exe 无法读取从各自的 Visual Studio 版本构建的 .dll 文件