【问题标题】:Django Wizard Form and other view in one pageDjango 向导表单和其他视图在一页中
【发布时间】:2019-02-05 20:30:12
【问题描述】:

我正在尝试在一个页面中显示一个向导表单和一个表格(由该表单生成并且可以在每个步骤中看到)。有可能吗?

我试过了:

urls.py

urlpatterns = [url('', GroupsWizard.as_view(form_list), name = 'index'),]

views.py

def index(request):
    groups_render = Groups.objects.all()
    return render(request, 'index.html', {'groups_render' : groups_render})

class GroupsWizard(SessionWizardView):

    def get_template_names(self):
        return 'index.html'

    def done(self, form_list, **kwargs):
        data = {k: v for form in form_list for k, v in form.cleaned_data.items()}
        instance = Groups.objects.create(**data)
        return render(self.request, 'done.html', {
            'form_data': [form.cleaned_data for form in form_list],
        })

index.html

<div>
  {{ wizard.form.management_form }}
    {% for form in wizard.form.forms %}
      {{ form }}
    {% endfor %}
</div>
<div>
{{ groups_render }}
</div>

谢谢

【问题讨论】:

    标签: python django django-forms django-formwizard


    【解决方案1】:

    我找到了,

    我在views.py中使用了get_context_data函数:

    class GroupsWizard(SessionWizardView):
    
        def get_template_names(self):
            return 'index.html'
    
        def get_context_data(self, form, **kwargs):
            context = super(GroupsWizard, self).get_context_data(form = form, **kwargs)
            context_data = Groups.objects.all()
            context.update({'context_data': context_data})
            return context
    
        def done(self, form_list, **kwargs):
            data = {k: v for form in form_list for k, v in form.cleaned_data.items()}
            instance = Groups.objects.create(**data)
            return render(self.request, 'done.html', {
                'form_data': [form.cleaned_data for form in form_list],
            }) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-13
      • 2019-05-12
      • 2020-04-30
      • 2012-05-19
      • 2015-10-11
      • 2010-12-30
      • 2015-09-09
      相关资源
      最近更新 更多