Django重复键值违反唯一约束错误模型表单。

4

我有一个遗留的PostgreSQL数据库,其中有一个简单的产品表格,包含2列(产品ID,产品名称),共有70个产品。我试图开始使用Django作为前端,并且我有以下模型和模型表单。保存过程失败,出现下面的错误。

duplicate key value violates unique constraint "productidentifier"
DETAIL:  Key (productid)=(4) already exists.

有人能帮忙纠正这个错误吗?我已经确认了Postgres表上的索引获取序列设置正确,期望值应该是72。请参见以下模型、表单和视图。

#models.py
class Products(models.Model):
    productid = models.AutoField(primary_key=True)
    productname = models.TextField(verbose_name='Product Name')

    class Meta:
        managed = False
#Views.py
def new_product(request):
    if request.method == 'POST':
        form= forms.EditProductForm(request.POST)
        if form.is_valid():
            product = form.save()
            return redirect('views.full_product_list')   
    else:
        form = forms.EditProductForm()
        return render(request, 'edit_product.html', {'form': form})

#forms.py
class EditProductForm(forms.ModelForm):
    productname = forms.CharField(widget=forms.TextInput(attrs={'class':'form-control'}))

    class Meta:
        model = models.Products
        fields = ('productname')
1个回答

6

你的自动字段序列可能存在问题。你可以使用./manage.py sqlsequencereset来解决这个问题。它会生成SQL查询语句来修复表格上的序列。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接