django表单验证失败后返回什么?

时间:2011-05-30 19:35:41

标签: python django django-forms django-validation

在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))

1 个答案:

答案 0 :(得分:0)

会话对此有好处,或者如果您使用AJAX,您可以验证表单,然后返回您的对象或某种错误消息或失败后您想要的任何内容。其中一个可能是最好的。您还可以将POST请求中的params作为GET查询参数传递给重定向的视图,或者将参数传递给重定向的视图:

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