【问题标题】:Can i call the get method in django class based views from the post method我可以从 post 方法调用基于 django 类的视图中的 get 方法吗
【发布时间】:2018-08-14 09:45:59
【问题描述】:

在我的 django 应用程序的views.py 中,我有一个基于类的视图Profile(View),它有两种方法get(self, request)post(self, request)。所以当一个发布请求发送到这个视图时,当输入通过测试时,我想去调用get() 方法,它将返回带有更新数据的模板。有可能吗?

【问题讨论】:

  • 是的,试试吧,它有效。
  • 这实际上不是 一个好主意,因为如果用户刷新浏览器,POST 请求将执行 次。通常是 POST-REDIRECT-GET:en.wikipedia.org/wiki/Post/Redirect/Get
  • 我是return self.get(request) 还是self.get()
  • 这不是一个的主意
  • 我也应该redirect('/to/view's/get/url') ?

标签: django python-3.x django-views


【解决方案1】:

从技术上讲,这当然是完全可能的,并且像return self.get(request, **kwargs) 一样简单,但你肯定不想这样做,因为它会打破 POST 与 GET 的期望。规范的导航模式是成功的 POST 之后应该跟随重定向,称为the "post-redirect-get" pattern。请注意,如果您想将某些状态(外部数据库状态)从 POST 传递到 GET,则可以使用会话(直接或使用 messages 框架)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-20
    • 2019-05-29
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多