Django duplicate key value violates unique constraint 错误模型形式
Django duplicate key value violates unique constraint error model form
我在 PostgreSQL 上有一个遗留数据库,其中包含一个简单的 products table,其中包含 2 列(productid、productname)和 70 个产品。我正在尝试开始使用 Django 作为前端,我有如下模型和模型形式。保存过程失败并出现以下错误。
duplicate key value violates unique constraint "productidentifier"
DETAIL: Key (productid)=(4) already exists.
谁能帮忙改正错误。我已在 Postgres table 上确认索引获取序列设置正确,预期值应为 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')
您的自动字段序列可能存在一些问题。您可以使用 ./manage.py sqlsequencereset
来解决这个问题。它将生成 SQL 查询以修复表的顺序。
我在 PostgreSQL 上有一个遗留数据库,其中包含一个简单的 products table,其中包含 2 列(productid、productname)和 70 个产品。我正在尝试开始使用 Django 作为前端,我有如下模型和模型形式。保存过程失败并出现以下错误。
duplicate key value violates unique constraint "productidentifier"
DETAIL: Key (productid)=(4) already exists.
谁能帮忙改正错误。我已在 Postgres table 上确认索引获取序列设置正确,预期值应为 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')
您的自动字段序列可能存在一些问题。您可以使用 ./manage.py sqlsequencereset
来解决这个问题。它将生成 SQL 查询以修复表的顺序。