Django,在表单提交时返回另一个视图

时间:2014-01-07 23:45:36

标签: python django django-forms

我在提交的页面上有一个modelForm,点击以下视图:

def add_review(request, id=None):
if request.method == 'POST':
    review_form = ReviewForm(request.POST or None)
    if review_form.is_valid():
        # do some stuff here...

return redirect('/movies/{0}'.format(id))

目前重定向回我们来自的页面,这会导致任何表单错误丢失。因此,当在所述页面上时,用户不会收到错误消息输出以通知他们。

有没有办法可以将任何review_form.errors传递给重定向到的视图,或者只是返回该视图而不是重定向到它?以下是该观点:

def view(request, id=None):
movie = get_object_or_404(Movie, id=id)

context = Context({
    'movie': movie,
    'review_form': ReviewForm(),
    'reviews': Review.objects.filter(
        movie=movie).order_by('-created_on')[:3],
    'genres': movie.moviegenre_set.filter(movie.title),
})
return render(request, 'movies/view.html', context)

由于

1 个答案:

答案 0 :(得分:1)

查看doc

  

虽然可以使用Django来处理表单提交   HttpRequest类,使用表单库来处理一些   常见的形式相关任务。使用它,您可以:

     
      
  1. 使用自动生成的表单小部件显示HTML表单。
  2.   
  3. 根据一组验证规则检查提交的数据。

         

    第3。在验证错误的情况下重新显示表单。

  4.   
  5. 将提交的表单数据转换为相关的Python数据类型。
  6.   

要在html中显示当前表单错误,您只需执行此操作

    {{ form.field.errors }}