SQLAlchemy - 无法使用NULL更新表以获取主键值

时间:2015-04-15 09:55:08

标签: python sqlalchemy

我有一个查询应该创建一个许可证实例,其中一部分看起来像:

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关系和license_status_id,它指向LicenseStatus模型

当我尝试绑定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,这就是我想要实现的目标。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

实际上这个错误很容易引起误解。 我得到了这个,事实证明问题是标记为另一个表的外键的列之一是null。不是标记为主键的那个,它只是一个外键。