首页 > 解决方案 > 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,这是默认行为吗?

标签: pythondjango

解决方案


是的,Django 模型的默认行为是null=False

根据文档,

null:如果为 True,Django 会将空值作为 NULL 存储在数据库中。默认为假。

你可以在这里阅读官方文档https://docs.djangoproject.com/en/3.1/ref/models/fields/


推荐阅读