SQLAlchemy - 无法使用 NULL 作为主键值来更新 table

SQLAlchemy - Can't update table using NULL for primary key value

我有一个应该创建许可证实例的查询,它的一部分看起来像这样:

license_obj = license_db.License()
license_db.Session.add(license_obj)
license_obj.start_date = license['start_date']
license_obj.expiry_date = license['expiry_date']

我还添加了一个 license_status 关系和指向 LicenseStatus 模型的 license_status_id

当我尝试为 license_status_id 绑定默认值时,如下所示:

license_db.license_status_id = int(license_db.LicenseStatus.active().id)

然后我得到一个错误:

"Can't update table "
FlushError: Can't update table using NULL for primary key value

但是当我尝试手动分配整数时,如下所示,它起作用了:

license_db.license_status_id = 1

导致问题的原因是什么?

如果我打印 license_db.LicenseStatus.active().id 然后我得到 int 等于 1 这是我想要实现的。

尝试在设置许可结束日期后添加 license_db.session 而不是第二行。

其实这个错误是很有误导性的。 我明白了,结果发现问题是标记为另一个 table 的外键的列之一为空。不是标记为主键的那个,它只是一个外键。