我的Django / PostgreSQL系统有一个奇怪的行为。
保存模型对象后,主键为none,尽管它是一个AutoField,并且id已正确保存在数据库中。
以下脚本段落为id:
返回Nonea = SomModelClass()
a.someattribute = 'xyz'
a.save()
a.someattribute
>>> 'xyz'
a.id
>>> None
模型类看起来像这样:
class SomeModelClass(models.Model):
id = models.AutoField(db_column = 'id', primary_key = True)
someattribute = models.CharField(db_column = 'someattribute', max_length = 200)
仅在此模型上出现此行为;所有其他模型都运行良好。
问题出现了一天而没有改变模型结构。
数据库的数据完整性可能存在一些问题?使用另一个数据库服务器,它工作正常。
祝你好运!
答案 0 :(得分:3)
我现在解决了这个问题。序列和序列列之间的关系以某种方式被破坏。一个简单的
ALTER SEQUENCE <<sequence_name>> OWNED_BY <<table_name>>.<<pk_column_name>>
解决了这个问题。
祝你好运!
答案 1 :(得分:1)
您可以查看Postgresql日志并找出正在触发的查询吗?这可能会提供一些线索。还要编写一个快速的单元测试来练习相同的代码并查看它是否有效。