【问题标题】:Send HTTP Post data from django view从 django 视图发送 HTTP Post 数据
【发布时间】:2014-03-01 22:10:05
【问题描述】:

我一直在向 django 应用程序添加功能。

其中一部分涉及搜索/更新数据页面,以简化修改数据并将其移出管理界面以提高易用性。

工作流程如下:用户输入搜索词。显示命中列表以及修改/更新的链接。用户单击链接进行更改并显示一个表单。在页面底部,他们可以单击提交或取消,其中任何一个都会将他们带回搜索页面。

所以这是我的问题:如何将用户重定向回搜索页面并传入原始帖子数据?

谢谢!

【问题讨论】:

标签: django


【解决方案1】:

请注意,管理员正是这样做的。

当您的用户进行搜索时,搜索结果中项目的 url 应在查询字符串中包含搜索词。例如,在管理员中,每个项目都会有一个查询字符串,如?_changelist_filters=q%3Dterm(即q=term)。在流程的每个步骤中传递此查询是您的应用程序将如何“记住”原始查询的方式。

因此,当用户单击该项目时,请在您的表单上创建一个 action 网址,其中也包含此查询字符串。然后,当提交表单时,您可以使用查询字符串中的搜索词重定向回您的搜索页面。

我希望这是有道理的。如果没有看到一些实际代码,很难更具体。

【讨论】:

  • 我已经使用这种方法在页面之间传递数据,但在这种情况下,我有一个视图方法,它同时具有 get 和 post 方法(即 if request.method == 'POST' # Do search stuff else # 显示搜索表单)。那么当用户选择取消将他们带回原始查询时,我将如何发出“POST”请求?
  • @Dan:大多数搜索功能(例如 Django admin、Google)允许您在查询字符串中传递搜索参数(例如 google.com/search?q=django)。如果你能做到这一点,那么你可以重定向到搜索的 GET 版本。如果没有,那么您将不得不将查询存储在某处(会话、数据库、cookie 等),因为您无法在重定向中传递 POST 数据。但是,仅 POST 搜索被认为对用户非常不友好,因为它无法添加书签等。
猜你喜欢
  • 2012-11-14
  • 2013-04-07
  • 2018-04-24
  • 2016-07-31
  • 1970-01-01
  • 2017-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多