Изменение первичного ключа в модели django - PullRequest
0 голосов
/ 06 февраля 2020

ранее у меня не было id в Server class и primary_key был в name , но я хотел, чтобы пользователи могли создавать несколько серверов с тем же именем, поэтому я решил создать id в качестве первичного_ключа в Сервер модель.

models.py

class Server(models.Model):
    name = models.CharField(max_length=20)
    id = models.IntegerField(primary_key=True, default=404)
    owner = models.ForeignKey(
        User, 
        on_delete=models.CASCADE,
    )
    users = models.ManyToManyField(
        User, 
        default=owner, 
        related_name='server_users',
    )

Когда я пытаюсь перенести изменения, я получаю сообщение об ошибке django .db.utils.OperationalError: (1068, «Определен несколько первичных ключей»)

Вы можете воспроизвести его с github repo путем изменения Server модели, как указано выше: добавление идентификатора с primary_key = True и удаление primary_key из name

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