Джанго ложно утверждает, что "нет уникального ограничения, соответствующего данным ключам для ссылочной таблицы"

Если я добавлю следующий класс в мою модель, все отлично работает при миграции.

class BeursCheck(models.Model):
    order = models.IntegerField(default=None)
    painting = models.ForeignKey(Painting, related_name='beursCheck',primary_key=True)

Однако, если я добавлю это поле..

mturk_assignment = models.ForeignKey(
    'mturk.MtAssignment', null=True, blank=True,
    related_name='+', on_delete=models.SET_NULL, unique=True
)

Сбой с ошибкой

django.db.utils.ProgrammingError: there is no unique constraint matching given keys for referenced table "mturk_mtassignment"

Это поле относится к MtAssignemnt, который имеет уникальный ключ. На этот ответ ответил даже так.

class MtAssignment(MtModelBase):
     id = models.CharField(max_length=128, primary_key=True)

1 ответ

Попробуйте изменить на:

from mturk.models import MtAssigmnet

    mturk_assignment = models.ForeignKey(
        MtAssignment, null=True, blank=True,
        related_name='+', on_delete=models.SET_NULL
    )
Другие вопросы по тегам