Внешний ключ с ограничением to_feild дает ошибку повторяющихся ключей - PullRequest
0 голосов
/ 10 января 2019

У меня есть внешний ключ к другой модели с ограничениями to_field с точками на поле в модели, но когда я пытаюсь выполнить миграцию, это выдает мне эту ошибку: django.db.utils.IntegrityError: не удалось создать уникальный индекс "disctest_respondent_least_disc_ce7da5e0_uniq" ДЕТАЛИ: Ключ (наименьший_диск) = (4,9,1,4,6) дублирован.

Вот модель:

class Combined(BaseRespondent):
    least_disc = models.ForeignKey(Respondent, to_field='least_disc',
                                   related_name="combined_least_disc", on_delete=models.CASCADE)
    most_disc = models.ForeignKey(Respondent, to_field='most_disc',
                                  related_name="combined_most_disc", on_delete=models.CASCADE)

а вот эталонная модель для внешнего ключа

class Respondent(BaseRespondent):
    least_disc = models.CharField(max_length=256, default='6,0,7,7,4' ,unique=True)
    most_disc = models.CharField(max_length=256, default='7,5,1,4,7', unique=True)
    most_personality = models.ForeignKey(Personality, on_delete=models.SET_NULL,
                                         null=True, related_name="most_personality")
    least_personality = models.ForeignKey(Personality, on_delete=models.SET_NULL,
                                          null=True, related_name="least_personality")

вот и ошибка, которую я получаю:

django.db.utils.IntegrityError: could not create unique index "disctest_respondent_least_disc_ce7da5e0_uniq"
DETAIL:  Key (least_disc)=(4,9,1,4,6) is duplicated.

Как мне решить эту проблему? Заранее благодарим за быстрый ответ.

...