0

这是我在 models.py 上的表格

class ItemForm(forms.Form):
     itemname = forms.CharField(max_length=100)
    itemwording = forms.CharField(max_length=100)
    notes = forms.CharField()
    abundance = forms.IntegerField(max_value=10)
    collunit = forms.CharField(max_length=50)
    litref = forms.CharField(max_length=100)
    litkey = forms.IntegerField(max_value=10)
    litrefdetail = forms.CharField()
    collcode =  forms.CharField(max_length=15)
    specimenno = forms.CharField(max_length=20)
    speciesid = forms.IntegerField(max_value=10)
    sorder = forms.CharField(max_length=50)
    disabled = forms.BooleanField(required = True)

这是我的观点.py

 def additem(request):
    from django.db import connection, transaction
    cursor = connection.cursor()
    if request.method == 'POST':
        form = ItemForm(request.POST)
        if form.is_valid():
            itemnameNEW = form.cleaned_data['itemname']
            itemwordingNEW = form.cleaned_data['itemwording']
            notesNEW = form.cleaned_data['notes']
            abundanceNEW = form.cleaned_data['abundance']
            collunitNEW = form.cleaned_data['collunit']
            litrefNEW = form.cleaned_data['litref']
            litkeyNEW = form.cleaned_data['litkey']
            litrefdetailNEW = form.cleaned_data['litrefdetail']
            collcodeNEW =  form.cleaned_data['collcode']
            specimennoNEW = form.cleaned_data['specimenno']
            speciesidNEW = form.cleaned_data['speciesid']
            sorderNEW = form.cleaned_data['sorder']
            disabledNEW = form.cleaned_data['disabled']

            newitem = Item(itemname=itemnameNEW, itemwording=itemwordingNEW, notes=notesNEW, abundance=abundanceNEW, collunit=collunitNEW, litref=litrefNEW, litkey=litkeyNEW, litrefdetail=litrefdetailNEW, collcode=collcodeNEW,specimenno=specimennoNEW, speciesid=speciesidNEW,sorder=sorderNEW,disabled=disabledNEW )
            newitem.save();
            return HttpResponseRedirect('/jalo/')
        else:
            return HttpResponseRedirect('/nojalo/')

    else:
        form = ItemForm()

    return render_to_response('tbl/additem.html', {'form': form})

当我提交表格时,我得到

     IntegrityError at /login/manageitem/additem/
      duplicate key value violates unique constraint "tbl_item_pkey"

我只想使用 django 在表上插入信息

4

1 回答 1

1

您发布的数据并不表明问题的根源。syncdb您上次更改模型时是否清除了数据库并运行?

您看到的错误与尝试将重复值引入必须唯一且在数据库级别受约束的列有关。您有一个对象试图用重复的 pk 值保存。

也就是说,您的 keyvalueNEW 方案根本不是正确的方法。您可能想改用 ModelForms。

http://docs.djangoproject.com/en/dev/topics/forms/modelforms/

于 2009-11-20T00:54:57.273 回答