2012-12-08 2 views
0

을 확인합니다. 여기 내 코드는 다음과 같습니다.장고 : 나는 장고의 업데이트 양식을 검증하기 위해 노력하고 수정 양식

if request.method == 'POST': 
    form = LawsIdsForm(request.POST) 
    lawToValidate= form.data['lawsToValidate'] 
    #if a law is selected 
    if lawToValidate!="": 
     law=LawsIdsModel.objects.get(id=lawToValidate) 
     formInstance = LawsIdsForm(instance=law, initial={'lawsToValidate':lawToValidate}) 
     #saves the law 
     if 'lawsValidationSaveButton' in request.POST: 
      print "save" 
      if form.is_valid(): 
       print "form valid" 
       formInstance.save() 
      else: 
       print "form not valid", form.errors 

이제 데이터를 저장하고 싶습니다. 내가 formInstance.is_valid()를 사용하는 경우 양식이 언 바운드이기 때문에, 그것은 작동하지 않습니다. 내가) (form.is_valid 않으면 때문에 유니시티 오류로 false를 반환합니다. django에게 어떻게 데이터를 추가하고 데이터를 업데이트하고 싶지는 않습니까? (데이터를 추가 할 때이 유니시티 오류는 발생할 수)

답변

0

해결! 여기

내가 변경 한 것입니다 :

if request.method == 'POST': 
    lawToValidate=request.POST.getlist('lawsToValidate')[0] 
    #if a law is selected 
    if lawToValidate!="": 
     law=LawsIdsModel.objects.get(id=lawToValidate)  
     #saves the law 
     if 'lawsValidationSaveButton' in request.POST: 
      print "save" 
      form = LawsIdsForm(request.POST, instance=law) 
      if form.is_valid(): 
       print "form valid" 
       form.save() 
      else: 
       print "form not valid", form.errors 
0

동일한 양식을 확인하고 저장해야합니다 :

 if formInstance.is_valid():  <-- change here! 
      print "form valid" 
      formInstance.save() 

를 귀하의 경우 formInstance 형태의 바인더 제본 인스턴스가 사람이기 때문이다. 양식에서 데이터를 처리 django Working with forms docs

을 인용

:) (is_valid True를 반환하면, 성공적으로 검증 된 폼 데이터는 form.cleaned_data 사전에있을 것입니다. 이 데이터는 파이썬에 잘 유형을 변환 된 것입니다.

+0

내가 코드 만) (is_valid false를 반환 시도! 그래서 formInstance가 한정되어 있지 않다는 것을 의미합니다 !! 내가 맞습니까? (오류 없음) – rom

+0

'fieldInstance.non_field_errors'을보십시오 – danihp

+0

@rom, 문제를 해결 했습니까? – danihp

관련 문제