Django:pkey在保存后没有

时间:2010-08-26 16:49:23

标签: django postgresql django-models

我的Django / PostgreSQL系统有一个奇怪的行为。

保存模型对象后,主键为none,尽管它是一个AutoField,并且id已正确保存在数据库中。

以下脚本段落为id:

返回None
a = 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)

仅在此模型上出现此行为;所有其他模型都运行良好。

问题出现了一天而没有改变模型结构。

数据库的数据完整性可能存在一些问题?使用另一个数据库服务器,它工作正常。

祝你好运!

2 个答案:

答案 0 :(得分:3)

我现在解决了这个问题。序列和序列列之间的关系以某种方式被破坏。一个简单的

ALTER SEQUENCE <<sequence_name>> OWNED_BY <<table_name>>.<<pk_column_name>> 

解决了这个问题。

祝你好运!

答案 1 :(得分:1)

您可以查看Postgresql日志并找出正在触发的查询吗?这可能会提供一些线索。还要编写一个快速的单元测试来练习相同的代码并查看它是否有效。