我有一个允许我编辑/更新帖子的视图。该帖子是填写表格的结果。这类似于我猜测在编辑后重定向到CMS帖子。这是帖子视图:
class PostUpdateView(UpdateView):
model = Product
form_class = ProductForm
template_name = 'edit_product.html'
def form_valid(self, form):
self.object = form.save(commit=False)
self.object.save()
return redirect ('products')
@method_decorator(login_required)
def dispatch(self, request, *args, **kwargs):
return super(PostUpdateView, self).dispatch(request, *args, **kwargs)
在更新表单中的详细信息后,它会重定向到'产品'页面,而我想重定向到刚编辑的项目。这些项目的URL是:
url(r'^([0-9]+)/$', views.detail, name = 'detail'),
每个帖子都是网址中的数字,例如http://127.0.0.1:8000/13/
。我可以重定向到上一页,但是我会回到编辑视图,而我想回到实际的帖子视图,显示编辑。希望这不是一团糟。
我理解我需要抓取orginating url,然后在表单更新后使用它,所以我现在正在研究它。感激地收到任何指导。
答案 0 :(得分:2)
它会重定向到产品页面,因为这是您在form_valid
中明确告诉它的内容。如果要重定向到详细信息页面,请执行以下操作:
return redirect('detail', self.object.pk)