2011-05-30 66 views
1

在django表單驗證失敗後,我應該如何返回到我的頁面?django表單驗證失敗後返回什麼?

這就是我的那一刻,我返回一個選擇render_to_response後卻始終無法與我的表單對象和所有我需要傳回的其他對象。但在瀏覽器中的URL的形式操作的價值所以這在我看來好像我做錯了什麼。我寧願如果我能以某種方式返回與HttpResponseRedirect一起的對象,但看看不可能的文檔。

def addReview(request,reviewId): 
    review = AdminReview.objects.get(id=int(reviewId)) 

if request.method == 'POST': 
    form = UserReviewForm(request.POST) 
    if form.is_valid(): 
     cd = form.cleaned_data 
     ur = UserReview(adminReview=review,review=cd['review'],rating=int(cd['rating'])) 
     ur.save()   
     return HttpResponseRedirect(reverse('filmflux.reviews.views.review', kwargs={'reviewId':review.id,'filmSlug':review.filmSlug})) 
userReviews = review.userreview_set.all() 
return render_to_response('review.html', {'review':review,'form': form, 'userReviews': userReviews }, context_instance=RequestContext(request)) 

回答

0

會議將有利於這一點,或者如果您使用AJAX,你可以驗證表單,然後返回你的對象或某種錯誤信息或任何你想在發生故障後的。其中一個或另一個可能是最好的。您也可以將POST請求中的參數作爲GET查詢參數傳遞給重定向視圖,或將參數傳遞給重定向視圖:

from django.shortcuts import redirect 
return redirect('some-view-name', reviewID=id)