Что возвращать после неудачной проверки формы django? - PullRequest
1 голос
/ 30 мая 2011

Как мне вернуться на свою страницу после того, как форма 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 голосов
/ 30 мая 2011

Сеансы были бы хороши для этого, или, если вы используете AJAX, вы можете проверить форму, а затем вернуть свой объект или какое-либо сообщение об ошибке, или что вы хотите после сбоя.Один или другой, вероятно, будет лучше.Вы также можете передать параметры из запроса POST вместе с параметрами запроса GET в перенаправленное представление или передать аргументы в перенаправленное представление:

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