Как добавить значение формы в URL с помощью Django - PullRequest
0 голосов
/ 29 апреля 2011

У меня есть простая форма. У этого есть поле, которое принимает имя хоста и кнопку отправки. Когда форма отправлена, мое приложение получает некоторую информацию о предоставленном хосте и отображает ее пользователю.

Я хотел бы, чтобы после отправки формы обновился URL-адрес, чтобы он включал имя хоста, предоставленное пользователем. Например:

http://my-host-checker.com

становится

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

Также я бы хотел, чтобы кто-то мог отправить второй URL-адрес по электронной почте в виде ссылки, которая может использоваться для автоматической отправки запроса и перехода на страницу результатов.

Я очень новичок в Django и буду признателен за примеры кода, если это действительно возможно.

Ответы [ 2 ]

2 голосов
/ 29 апреля 2011

Посмотрите документацию для Django URL-диспетчера .Это довольно просто.Для вашего примера вам, вероятно, потребуется использовать универсальное регулярное выражение, например:

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

Я бы предложил использовать подпапку, чтобы вы могли включить другие страницы на свой сайт.Что-то вроде:

r'^sites/(?P<site>.*)$'
1 голос
/ 29 апреля 2011

Общая идея заключается в том, что вы делаете перенаправление после успешной обработки данных формы.

Взгляните на этот пример (в котором даже показано, как отправить письмо).

Теперь вместо перенаправления на статическую страницу (HttpResponseRedirect('/thanks/')) вам следует перенаправить в подробный вид вашего вновь созданного объекта.

Предполагая, что у вас уже есть настройка для страниц подробностей ваших хостов, вы можете направить пользователя к get_absolute_url() вновь созданного объекта (проверьте постоянная ссылка документы для получения дополнительной информации).

HttpResponseRedirect(new_host.get_absolute_url())
...