Django: pkey - никто после сохранения - PullRequest
2 голосов
/ 26 августа 2010

У меня странное поведение в моей системе Django / PostgreSQL.

После сохранения объекта модели первичным ключом является none, хотя это AutoField и идентификатор правильно сохраняется в базе данных.* Следующий отрывок сценария возвращает 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 ]

3 голосов
/ 27 августа 2010

Я решил проблему сейчас. Связь между последовательностью и последовательным столбцом была каким-то образом разрушена. Простой

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

решил проблему.

С уважением!

1 голос
/ 26 августа 2010

Можете ли вы проверить свой журнал Postgresql и выяснить, какой запрос запускается?Это может дать некоторые подсказки.Также напишите быстрый модульный тест для проверки того же кода и посмотрите, работает ли он.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...