【发布时间】:2020-04-26 17:33:59
【问题描述】:
我想问一个问题,但我自己找到了答案并想在这里分享。也许有人甚至可以告诉我发生了什么。
我像以前一样创建了一个 UpdateView 子类。但是,当我通过一个属于 method=post 表单的按钮进入该页面时,我只得到一个空表单。快把我逼疯了。最后,我偶然发现,当我在地址栏中再次输入 URL 时,会从数据库中接收到值。我使用按钮将表单从发布更改为获取,当我现在单击它转到 UpdateView 页面时,它可以工作。但老实说,我不知道为什么。 CVB 对我来说仍然很神秘;)
【问题讨论】:
-
GET 请求不应该从数据库中创建/更新/删除数据。 GET 请求应该有没有副作用。
-
亲爱的威廉,谢谢。但是你能告诉我为什么会这样吗?
-
因为它是这样设计的 (en.wikipedia.org/wiki/…): "GET 方法请求指定资源的表示。使用 GET 的请求应该只检索数据并且应该没有其他效果。(其他一些 HTTP 方法也是如此。)[1] W3C 已经发布了关于这种区别的指导原则,说:“Web 应用程序设计应该遵循上述原则,但也应该遵循相关限制。"[24]."
-
谢谢。我认为这会有一些安全原因。
标签: django python-3.x django-views