Перенаправление формы в другую форму динамически - PullRequest
0 голосов
/ 06 октября 2018

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

В двух словах, у меня есть форма, составленная из одного MultipleChoiceField .

Когда пользователь впервые подключается к веб-странице с помощью этой формы, он может установить соответствующие флажки, а затем нажать кнопку «Отправить».Пока мне удается это сделать.

Я застрял на том, как перенаправить пользователя на другую форму (всего будет 10 форм, пока он не достигнет «полной» веб-страницы).

Используя redirect , я знаю, как перенаправить пользователя на статическую веб-страницу, но я не мог понять, как перенаправить его на динамическую веб-страницу (т.е. основываясь на значениях переменных в моем представлении).

Ниже приведены сценарии, которые я написал, чтобы дать вам лучшее представление о том, чего я пытаюсь достичь:

[views.py]

def my_form(request, id):

    form = MyForm(request.POST or None, form_id=id)

    if form.is_valid():

        # DO SOME CLEAN-UP...

        form.id += 1
        id += 1

    return render(request, 'my_form.html', {'form': form, 'id': id})

[urls.py]

urlpatterns = [
    ...
] +
[url('my_form', views.my_form, {'id': 1}, name='my_form'))]

Как вы можете себе представить, моей целью было начать с идентификатора 1, а затем каждый раз, когда пользователь нажимает кнопку Отправить, он получаетперенаправляется на форму id + 1 до номера 10.

С помощью приведенного выше кода меня всегда перенаправляют на страницу с id = 1.

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

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

Заранее большое спасибо.Софи:)

[ПРАВИТЬ 06/10/2018]

Код теперь выглядит так:

[my_form.html]

<form action="{% url 'my_form' %}" method="post">



    {% csrf_token %}

    <table border="1">
        {{ form.as_p }}
    </table>

    <input type="submit" value="Submit" class="btn btn-primary"/>

</form>

[urls.py]

urlpatterns = [
    ...
] +
[path('question/<int:id>/', views.my_form, name="my_form")]

1 Ответ

0 голосов
/ 06 октября 2018

Может быть HttpResponseRedirect вам в помощь.

return HttpResponseRedirect(reverse('my_form', kwargs={'id':id})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...