Я создал модели в приложении Django, используя manage.py inspectdb
в существующей базе данных postgres.Казалось, это работает, за исключением того, что все первичные ключи были описаны в моделях как IntegerField
s, что делало их редактируемыми в панели администратора, и их нужно было вводить вручную, основываясь на знании идентификатора предыдущей записи.Я только что узнал об этом после некоторого использования клиентом, поэтому я вернулся, чтобы изменить такие вещи, как
blog_id = models.IntegerField(primary_key=True)
... на ...
blog_id = models.AutoField(primary_key=True)
Теперь поля идентификатора donне отображаются в панели администратора (хорошо), но добавление новых строк стало невозможным (не хорошо).
IntegrityError в / admin / franklins_app / blog / add /
duplicateзначение ключа нарушает уникальное ограничение "blog_pkey"
Что за исправление?(Дополнительный вопрос: возможно ли зафиксировать значение, которое Django пытается назначить в качестве первичного ключа для новой строки?)