2012-08-08 84 views
1

我無法提交ModelForm。Django ModelForm完整性錯誤

基本上,我的一個屬性被排除了,並且我在增加request.POST對象來包含它(所以ORM可以在沒有任何問題的情況下保存它)。從我的理解(再說一次,當談到django時我就是n00b),這就是它的工作原理。

我在致電form.save()時收到IntegrityError。

我正在使用的代碼在這裏:http://dpaste.com/783425/

編輯:代碼粘貼下面的後代。

# forms.py 
class CreateNewItemForm(ModelForm): 
    class Meta: 
     model = X.models.Y 
     exclude = ('person',) 

# views.py 
def myview(request, person_id): 
    if request.method == "POST": 
     data = request.POST.copy() 
     data['person'] = Person.objects.get(id=person_id) 
     # NOTE: I've also tried: data['person'] = person_id 

     form = CreateNewItemForm(data) 

     if form.is_valid(): 
      form.save() # throws the IntegrityError 

回答

3

我認爲這個代碼是錯誤的...更改此代碼...

def myview(request, person_id): 
    data = None 
    if request.method == "POST": 
     data = request.POST 
    form = CreateNewItemForm(data) 
    if form.is_valid(): 
     newitem = form.save(commit=False) 
     newitem.person = Person.objects.get(id=person_id) 
     newitem.save()