我有一个简单的表格。它有一个接受主机名和提交按钮的字段。提交表单后,我的应用程序会获得有关所提供主机的一些信息,并将其显示给用户。
我想要做的是在提交表单后更新URL以包含用户提供的主机名。例如:
http://my-host-checker.com
变为
http://my-host-checker.com/acme.com
此外,我希望有人能够通过电子邮件将第二个URL作为链接发送,该链接可用于自动提交请求并进入结果页面。
我非常喜欢Django新手,如果确实有可能,我会很感激一些代码示例。
答案 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())