如何使用Django将表单值添加到URL

时间:2011-04-29 15:39:51

标签: django django-urls

我有一个简单的表格。它有一个接受主机名和提交按钮的字段。提交表单后,我的应用程序会获得有关所提供主机的一些信息,并将其显示给用户。

我想要做的是在提交表单后更新URL以包含用户提供的主机名。例如:

http://my-host-checker.com

变为

http://my-host-checker.com/acme.com

此外,我希望有人能够通过电子邮件将第二个URL作为链接发送,该链接可用于自动提交请求并进入结果页面。

我非常喜欢Django新手,如果确实有可能,我会很感激一些代码示例。

2 个答案:

答案 0 :(得分:2)

查看documentation for Django URL dispatcher。这很直截了当。对于您的示例,您可能需要使用catch-all正则表达式,如:

r'^(?P<site>.*)$'

我建议使用子文件夹,以便您可以在您的网站上包含其他页面。类似的东西:

r'^sites/(?P<site>.*)$'

答案 1 :(得分:1)

一般的想法是在成功处理表单数据后进行重定向。

看看this example(甚至展示了如何发送邮件)。

现在,您应该重定向到新创建的对象的详细信息视图,而不是重定向到静态页面(HttpResponseRedirect('/thanks/'))。

假设您已拥有view setup for the detail pages个主机,则可以将用户定向到新创建的对象的get_absolute_url()(有关详细信息,请查看permalink文档。)

HttpResponseRedirect(new_host.get_absolute_url())