IntegrityError: Сбой уникального ограничения - PullRequest
0 голосов
/ 12 октября 2018

Я получаю эту ошибку и пытаюсь ее решить, следуя другим сообщениям, но это не помогло.Я новичок в Django rest_framework и пытаюсь собрать остальные API с помощью Python.

У меня 5 моделей. Немногие из них связаны между собой внешним ключом.

Проект и Файл (модели) связаны между собой внешним ключом.Все модели имеют поле идентификатора как UUIdField с атрибутом unique=True.У меня нет данных в модели проекта.Когда я пытаюсь вставить данные в модель проекта через интерфейс администратора, данные успешно вставляются.

Но когда я пытаюсь вставить один и тот же экземпляр модели File в две разные модели Project, это даетмне сообщение об ошибке:

UNIQUE constraint failed: testapp_project.file_id

Я пытаюсь вставить один и тот же файл в два разных проекта, и это выдает ошибку.

Вот мои модели:

class Project(models.Model):
    id=models.UUIDField(
              primary_key=True,
              default=uuid.uuid4,
              editable=False)
    title = models.CharField(max_length=200)
    file = models.ForeignKey(File, 
                             on_delete=models.CASCADE,
                             related_name='projects'
                            )
    type = models.CharField(max_length=200)
    def __str__(self):
        return self.title

class File(models.Model):
    File_Status = Choices("Working","Uploading","Finished")
    id=models.UUIDField(primary_key=True, default=uuid.uuid4, unique=True)
    name=models.CharField(max_length=200)
    filetype=models.ForeignKey(FileType, on_delete=models.CASCADE)
    software=models.ForeignKey(Software, on_delete=models.CASCADE)
    description=models.TextField()
    created=models.DateTimeField(auto_now_add=True)
    modified=models.DateTimeField(auto_now_add=True)
    status=models.CharField(choices=File_Status, max_length=200, default=File_Status.Working)

    def __str__(self):
        return self.name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...