Как оформить формы в Django? - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть данные формы, которые я собираю в представлениях. То, что пользовательский ввод будет определять, как будет выглядеть следующая форма. Должен ли я создать другой вид? Если да, то как мне передать переменные из одного представления в другое? И должен ли отдельный вид отображать другую страницу html?

Или есть способ работать в том же виде, в котором я изначально собирал данные?

Вид выглядит так:

def admission(request):
    if request.method == 'POST':
        form = DeterminingForm(request.POST)

        if form.is_valid():
            selected_season = form.cleaned_data['season']
            selected_batch = form.cleaned_data['batch']
    form = DeterminingForm()

    context = {
        'form': form,
    }

    return render(request, 'admission.html', context)

1 Ответ

1 голос
/ 22 апреля 2020

Я использовал django -formtools Мастер форм в прошлом для аналогичных случаев использования. Создание подклассов SessionWizardView позволяет вам отображать несколько разных форм, используя один и тот же вид и даже один и тот же шаблон, если вы используете sh, однако вы можете иметь разные шаблоны для каждой формы. Переменные для каждой отправки формы хранятся в сеансах на стороне сервера, и контекст может быть извлечен для каждого шага в процессе.

Если последовательность форм отличается в зависимости от ответов в предыдущей форме, вы должны иметь возможность создать некоторые логики c в процессе, используя метод WizardView.get_form () для каждого шага формы в процесс. Надеюсь, это поможет в качестве стартера

...