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

Python Foreignkey问题,密钥(状态\u id)=(1)已存在,python,django,Python,Django,我正在使用Django/Rest框架进行一个小项目(看板板),我有两个模型 状态(列)和任务模型 任务只能在一列中,因为我们将任务从一列拖到另一列,这意味着任务只能在一列中 我通过创建外键建立了一个OneToMany关系,但我不确定这是否是正确的选择,因为我在尝试添加新任务时出错 我得到的错误是: duplicate key value violates unique constraint "task_task_status_id_de4e8cac_uniq" DETAIL:

我正在使用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)

从你发布的错误中

重复的键值违反唯一约束“任务\任务\状态\ id \开发4E8CAC\ uniq”

您在
状态\u id
上有一个唯一的约束,请检查数据库。(因为您的模型中没有
unique=True

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

如果没有,恭喜你


如果是,那么检查request.data的有效性

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


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

显示创建或更新任务实例的代码。看起来您正在尝试使用现有id创建新任务,而不是更新现有id。是的,我想在@gdef_处创建新任务添加创建任务的代码task@gdef_同样的问题我该怎么办你需要我展示什么?