如何在Django中展示表单?

如何在Django中展示表单?,django,django-forms,django-views,django-templates,Django,Django Forms,Django Views,Django Templates,我有在视图中收集的表单数据。用户输入的内容将决定下一个表单的样子。我应该创建另一个视图吗?如果是这样,如何将变量从一个视图传递到另一个视图?单独的视图应该呈现不同的html页面吗 或者,有没有一种方法可以在我最初收集数据的相同视图中工作 视图如下所示: def admission(request): if request.method == 'POST': form = DeterminingForm(request.POST) if form.is_v

我有在视图中收集的表单数据。用户输入的内容将决定下一个表单的样子。我应该创建另一个视图吗?如果是这样,如何将变量从一个视图传递到另一个视图?单独的视图应该呈现不同的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)
我过去曾在类似的用例中使用过表单向导。通过对SessionWizardView进行子类化,可以使用相同的视图,甚至是相同的模板来呈现多个不同的表单(如果您希望),但是可以为每个表单提供不同的模板。每个表单提交的变量都存储在服务器端会话中,并且可以为流程中的每个步骤提取上下文


如果表单的顺序因前一个表单中的答案而异,那么您应该能够使用WizardView.get_form()方法在流程中为流程中的每个表单步骤构建一些逻辑。希望这对初学者有所帮助

Django曾经包含一个用于多步骤表单/视图的表单向导,现在它已被移动到一个单独的项目中