Foreignkey问题,密钥(状态\u id)=(1)已存在

2024-09-28 03:24:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Django/Rest框架进行一个小项目(看板板),我有两个模型

状态(列)和任务模型

任务只能在一列中,因为我们将任务从一列拖到另一列,这意味着任务只能在一列中

我通过创建外键建立了一个OneToMany关系,但我不确定这是否是正确的选择,因为我在尝试添加新任务时出错

我得到的错误是:

duplicate key value violates unique constraint "task_task_status_id_de4e8cac_uniq"
DETAIL:  Key (status_id)=(1) already exists.

我必须在这两个模型之间建立什么样的关系

这是我的模型:

class Task(models.Model):
    status = models.ForeignKey(Status, related_name="tasks",  on_delete=models.CASCADE)
    title = models.CharField(max_length=60, blank=False, null=False)

class Status(models.Model):
    title = models.CharField(blank=False, null=False, max_length=255)
    slug = models.CharField(blank=False, null=False, max_length=255)
    order = models.SmallIntegerField(default=0)

    def __str__(self):
        return self.title

视图:

def create(self, request):
        formSerializer = self.serializer_class(data = request.data, many= True)
        if formSerializer.is_valid():
            formSerializer.save()
            listSerializer = self.serializer_class(self.queryset, many = True)
            return Response(listSerializer.data, status = status.HTTP_201_CREATED)
        return Response(formSerializer.errors, status.HTTP_400_BAD_REQUEST)

Tags: 模型selffalsedatareturntitlemodelsstatus
2条回答

这个问题真的很疯狂,来自PostgreSQl,因为我在手动执行insert,这就是问题所在

因此,我构建了我的表,并开始从视图中插入数据,而不涉及SQL(我在postgres admin中执行查询)

从你发布的错误中

duplicate key value violates unique constraint "task_task_status_id_de4e8cac_uniq"

如果在status_id上有一个唯一的约束,请检查数据库(因为从您的模型来看,这里没有unique=True

任务模型很简单,所以您可以在db shell中进行“任务添加”测试。检查是否显示错误

如果没有,恭喜你

如果是,则检查request.data的验证

相关问题 更多 >

    热门问题