Django - устаревшая база данных и проблемы с полем id

Я интегрирую базу данных MySQL из приложения php в новый проект Django. Inspectdb работал хорошо, мне просто пришлось изменить пару полей на ForeignKeys, и теперь все операции чтения и редактирования текущих данных работают отлично.

Проблема в том, что когда я пытаюсь создать новую запись, я получаю сообщение об ошибке «Поле 'id' не имеет значения по умолчанию» . Отслеживание начинается с вызова form.save () , и исключение исходит от курсора MySQL. В большинстве случаев столбец называется id , но в одном случае это именованное значение:

class ModelOne(models.Model): #normal "id" named pk 
    id = models.AutoField(primary_key=True, db_column='id', default=None)
    other_fields = ...

class ModelTwo(models.Model): #specific pk
    named_pk = models.AutoField(primary_key=True, db_column='named_pk',
                                default=None)
    other_fields = ...

Для ModelTwo, когда я отправляю действительную форму POST, я получаю сообщение об ошибке, но затем, если я вернусь к своему список данных, новый элемент появляется! И после того, как я проверил последние значения id в оболочке, я увидел, что они увеличиваются правильно.

Но для ModelOne (только с id ) ошибка все равно появляется, и pk становится 2147483647 (максимальное значение), а последующие сохранения завершаются неудачно из-за повторяющихся идентификаторов. (следующий по величине pk равен 62158)

Что мне нужно сделать, чтобы эти поля id работали правильно?


update: Все еще не удалось исправить это. Подумайте о том, чтобы выгрузить данные и импортировать их в свежие таблицы, созданные Django. Все еще ищу решение этой проблемы.


update2: Информация из оболочки базы данных

ModelOne:

+-------------+--------------+-------+------+---------+-----------------+
| Field       | Type         | Null  | Key  | Default | Extra           |
| id          | int(11)      | NO    | PRI  | NULL    | auto_increment  |

ModelTwo:

+-------------+--------------+-------+------+---------+-----------------+
| Field       | Type         | Null  | Key  | Default | Extra           |
| named_pk    | int(11)      | NO    | PRI  | NULL    | auto_increment  |

5
задан j_syk 15 July 2013 в 22:36
поделиться