Django: Как перенаправить пользователей на страницы на основе ввода формы? - PullRequest
0 голосов
/ 07 января 2019

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

Форма с примером ввода пользователя (Да / Нет):


[Вопрос] | [Да] | [Нет]
Вопрос1 | ------ | XXX
Вопрос2 | ------ | XXX
Вопрос3 | XXX | ------

Логика:


Если Q1 = Нет, Q2 = Нет и Q3 = Да, то перенаправить на страницу W
Если Q1 = Да, Q2 = Нет и Q3 = Да, то перенаправить на страницу X
Если Q2 = Да, то перенаправить на страницу Y
Иначе, затем перенаправить на страницу Z

Веб-страница является частью проекта, созданного с использованием Django и Python.

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

Кроме того, я не хочу сохранять пользовательские данные в моей базе данных. После перенаправления пользователя на страницу W, X, Y или Z ввод не запоминается.

Не могли бы вы помочь мне найти правильный способ отправки данных формы пользователя на сервер, выполнить логические вычисления и использовать результат для перенаправления пользователя на нужную страницу?

Заранее спасибо!

- Спасибо за ваш ответ. Я попробовал ваше предложение, но в итоге выбрал обходной путь, где я реализовал IF-заявления на основе результатов формы. Содержание страницы, следующей за формой ввода пользователя, зависит от ответов.

1 Ответ

0 голосов
/ 07 января 2019

Если под "подстраницей" вы имеете в виду, что вам не нужна перезагрузка страницы, я бы порекомендовал решить эту проблему с помощью js, а не с помощью классического метода Form / Post.

Если вы хотите сохранить логику в файле views.py, одним из способов сделать это является отправка формы с использованием Ajax и отображение результата на вашей странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...