【发布时间】:2020-03-27 00:24:47
【问题描述】:
我在 django 应用程序中创建了一个模型,并将数据从 pgadmin 填充到表中,但现在当我尝试从应用程序创建记录时,它会引发此完整性错误:
重复键值违反唯一约束“packsapp_foo_pkey”
详细信息:键 (id)=(4) 已存在。
这是models.py
class foo(models.Model):
a = models.CharField(max_length=500, default=0)
b = models.EmailField(max_length=500, default=0)
c = models.CharField(max_length=500, default=0)
d = models.CharField(max_length=500, default=0)
我是否总是需要从应用程序本身插入数据?
Views.py
class ProductFormView(CreateView):
model = Product
form_class = Productaddform
template_name = 'packsapp/employee/employeeProductForm.html'
def form_valid (self, form):
product = form.save(commit=False)
print("user ", self.request.user.id)
product.product_owner = Employee.objects.filter(user = self.request.user.id)[0]
product.save()
messages.success(self.request, 'The product was created with success! ')
return redirect('employee:products_table')
【问题讨论】:
-
似乎您在插入新数据时正在传递 pk。请出示您的插入代码
-
请同时分享您的迁移文件
-
@cwhisperer 不,我没有通过 pk,我的表单类只包含 a,b,c,d
-
@UsmanMaqbool 我错误地删除了迁移,不再拥有它们
-
看起来您的数据库 pk 序列不同步。如果您强制使用自动主键的值,就会发生这种情况。我不记得究竟是如何在 postgres 中处理序列的,但无论如何它都有记录。
标签: django