即時通訊在一個視圖內顯示錶單錯誤時遇到一些麻煩。我目前是一名學生,已經參加了兩個學期的Python課程。我決定自己學習一些Django。Django multiple forms 1 view..Form error issue
我遇到的問題是,即時嘗試有一個多步驟的過程,所以用戶可以發佈一本書。但是,我想在同一個網址內完成。所以當用戶完成第一個表單並點擊提交時,它會繼續到下一個表單,但url不會改變。我已經明白了這一點。我的問題是,當我到達第二個窗體時,已經有表單顯示的窗體出現錯誤。我昨天花了3個小時試圖弄清楚,沒有運氣。 因此,如果任何人都可以伸出援助之手,那就太棒了!謝謝!
def book_post(request):
if request.method == 'POST':
formone = bookFormOne(request.POST)
formtwo = bookFormTwo(request.POST, request.FILES)
if formtwo.is_valid():
#.....do form2 valid stuff
return HttpResponseRedirect('/success')
if formone.is_valid() :
#....do form1 valid stuff
#formtwo = bookFormTwo()..if i add this the errors wont display but then errors from the first form spill over and it wont allow the second form to be valid...###
args = {'form2':formtwo,'isbn':isbn,'subject':subject}
args.update(csrf(request))
return render_to_response('book_post_form2.html', args,context_instance=RequestContext(request))
else:
args = {}
args['form'] = formone
args['form2'] = formtwo
args.update(csrf(request))
else:
form = bookFormOne()
args = {'form':form}
args.update(csrf(request))
return render_to_response('book_post.html', args,context_instance=RequestContext(request))
這不是很乾淨的邏輯。有一個'step_number'作爲上下文變量,並根據它來驗證表單。這樣,你可以驗證正確的步驟沒有任何問題 – karthikr
@karthikr我怎麼能做到這一點?你介意多給點解釋一下。謝謝! –
我猜肖恩是有點像我會建議的。 – karthikr