Django 2重定向到表单提交的下一页

Django 2重定向到表单提交的下一页,django,pagination,Django,Pagination,我有一个Django 2应用程序,一次通过一个大的“place”记录分页,模板在每个记录中添加了一些单选按钮集,用户可以在验证记录内容的过程中检查这些单选按钮集。我将每条记录包装在一个表单中,提交后我想a)在单独的“审阅”模型/表格中从这些选择创建一条新记录,b)重定向到分页器的下一页 我可以通过表单无线电输入创建新记录,然后重定向到确认页面。问题是如何重定向到相同的视图/模板,但推进页面 我尝试重定向到同一视图,但url不同: path('place/', views.place, name=

我有一个Django 2应用程序,一次通过一个大的“place”记录分页,模板在每个记录中添加了一些单选按钮集,用户可以在验证记录内容的过程中检查这些单选按钮集。我将每条记录包装在一个表单中,提交后我想a)在单独的“审阅”模型/表格中从这些选择创建一条新记录,b)重定向到分页器的下一页

我可以通过表单无线电输入创建新记录,然后重定向到确认页面。问题是如何重定向到相同的视图/模板,但推进页面

我尝试重定向到同一视图,但url不同:

path('place/', views.place, name='place'),
path('place/next', views.place, name='placenext'),
然后在视图中解析请求对象,但此操作失败且没有错误:

def place(request):

  paginator = Paginator(place_list, 1)
  req = request.path
  page = request.GET.get('page')  

  if req[-4:] == 'next':
    records = paginator.get_page(str(int(page)+1))
  else:
    records = paginator.get_page(page)

  context = {
    'records': records, 'page': page
  }

  return render(request, 'review/place.html', context=context)
我还尝试了许多其他的方法,包括以几种方式插入
?page=
,但它在黑暗中摸索,因为文档中没有关于如何实现这一点的指示。据我所知,request对象中没有任何东西可以让我将视图设置为“双用途”——只需呈现记录或推进页面

[由于下面的@Satendra,答案正确]

单路径、单视图,无论GET还是POST返回相同的结果,但如果POST,则使用表单内容创建新记录。Thx

if request.method == 'POST':
    # create Related record
    relform = request.POST
    related = Related.objects.create(
        placeid = relform['placeid'],
        ...,
        ...
    )
pprint(locals())
return render(request, 'review/place.html', context=context)

不要为同一视图创建多个端点

只需添加请求方法检查,当方法为POST时,使用
redirect
方法将其重定向到同一视图

from django.shortcuts import redirect, render

def place(request):
  if request.method == 'GET':
     ...
     # your code lies here when request is GET
     return render(request, 'review/place.html', context=context)
  else:
     return redirect('place')