Джанго.Создать составной первичный ключ - PullRequest
0 голосов
/ 22 сентября 2019

Я хочу создать составной promary ключ, такой как {id, project_id}.Я удаляю старые таблицы (все).когда я делаю:

python manage.py makemigrations

У меня есть ошибка:

AssertionError: Model mdm.Group can't have more than one AutoField.

изменить мою модель:

id = models.AutoField(db_index=True, primary_key=False)

и добавить составной первичный ключ как

constraints = [
        models.UniqueConstraint(
            fields=['id', 'project_id'], name='unique_group_project'
        )
    ]

Из документов:

By default, Django gives each model the following field:

id = models.AutoField(primary_key=True)

This is an auto-incrementing primary key.

If you’d like to specify a custom primary key, just specify primary_key=True on one of your fields. If Django sees you’ve explicitly set Field.primary_key, it won’t add the automatic id column.

Each model requires exactly one field to have primary_key=True (either explicitly declared or automatically added).

Я просто не понимаю проблемы.Если я добавлю AutoField, он обязательно должен PK.Как я могу решить проблему с идентификатором Autofield и составным PK (id, project_id)?

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