![](/img/trans.png)
[英]Django, 2 forms on one page, one form uses data from the other
[英]Django Wizard Form and other view in one page
我試圖在一個頁面中顯示一個向導表單和一個表(由該表單生成,並且可以在每個步驟中看到)。 可能嗎?
我努力了:
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>
謝謝
我找到了,
我在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],
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.