2011-05-30 95 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)