【问题标题】:Django - redirect to a view after editDjango - 编辑后重定向到视图
【发布时间】:2018-04-25 11:58:02
【问题描述】:

我有一个允许我编辑/更新帖子的视图。帖子是填写表格的结果。这类似于我猜想在编辑后重定向到 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'),

然后每个帖子都是 url 中的一个数字,例如http://127.0.0.1:8000/13/。我可以重定向到上一页,但带我回到编辑视图,而我想回到实际的帖子视图,显示编辑。希望这不是泥泞。

我觉得我需要获取原始 url,然后在表单更新后使用它,所以我现在正在研究它。感谢您提供任何指导。

【问题讨论】:

    标签: python django redirect post


    【解决方案1】:

    它会重定向到产品页面,因为这是您在 form_valid 中明确告诉它执行的操作。如果您想重定向到详细信息页面,请执行以下操作:

    return redirect('detail', self.object.pk)
    

    【讨论】:

    • 谢谢 - 我知道重定向是针对产品的,它是一个占位符,而我发现了如何以正确的方式进行操作。您的回答有效,非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-01
    • 2013-03-23
    • 1970-01-01
    • 2018-11-13
    • 2010-12-31
    • 2017-05-07
    • 2020-01-01
    相关资源
    最近更新 更多