我正在使用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)
这个问题真的很疯狂,来自PostgreSQl,因为我在手动执行insert,这就是问题所在
因此,我构建了我的表,并开始从视图中插入数据,而不涉及SQL(我在postgres admin中执行查询)
从你发布的错误中
如果在
status_id
上有一个唯一的约束,请检查数据库(因为从您的模型来看,这里没有unique=True
)任务模型很简单,所以您可以在db shell中进行“任务添加”测试。检查是否显示错误
如果没有,恭喜你
如果是,则检查request.data的验证
相关问题 更多 >
编程相关推荐