Python 如何在HTML模板中调用表单视图
我想制作一个HTML模板,其中我想制作三个表单A、B和C。 表单应默认加载,并有两个按钮打开表单B和C。表单应调用视图。A和抓取数据 现在点击按钮,表单B应该被加载并从视图中获取数据。B和C一样 我不知道这是否可能。Python 如何在HTML模板中调用表单视图,python,html,django,Python,Html,Django,我想制作一个HTML模板,其中我想制作三个表单A、B和C。 表单应默认加载,并有两个按钮打开表单B和C。表单应调用视图。A和抓取数据 现在点击按钮,表单B应该被加载并从视图中获取数据。B和C一样 我不知道这是否可能。 请提供帮助。从技术上讲,您可以使用一个视图和一个模板来呈现3个表单,然后使用一个操作url引用3个单独的视图,如下所示: def 3_forms_view(request): form_a = YourFormA(request.POST or None) form
请提供帮助。从技术上讲,您可以使用一个视图和一个模板来呈现3个表单,然后使用一个操作url引用3个单独的视图,如下所示:
def 3_forms_view(request):
form_a = YourFormA(request.POST or None)
form_b = YourFormB(request.POST or None)
form_c = YourFormC(request.POST or None)
context = {
"form_a": form_a,
"form_b": form_b,
"form_c": form_c,
}
return render(request, '3_form_template.html', context)
def view_a(request):
form_a = YourFormA(request.POST)
if form_a.is_valid():
#do something
form_a.save()
return HttpResponseRedirect('your_succsess_url')
# in case the form is not valid call back the view
# which handle the 3 form display
return 3_forms_view(request)
def view_b(request):
form_b = YourFormB(request.POST)
if form_b.is_valid():
#do something
form_b.save()
return HttpResponseRedirect('your_succsess_url')
# in case the form is not valid call back the view
# which handle the 3 form display
return 3_forms_view(request)
#same thing for view c
3_表单_模板:
没有提到你的尝试。您应该提供您正在使用的代码,并解释哪些代码不起作用。请看一下StackOverflow提问的最佳实践:当表格B出现时,表格a是否应该消失?是的,当B呼叫a时,表格a应该消失。
def 3_forms_view(request):
form_a = YourFormA(request.POST or None)
form_b = YourFormB(request.POST or None)
form_c = YourFormC(request.POST or None)
context = {
"form_a": form_a,
"form_b": form_b,
"form_c": form_c,
}
return render(request, '3_form_template.html', context)
def view_a(request):
form_a = YourFormA(request.POST)
if form_a.is_valid():
#do something
form_a.save()
return HttpResponseRedirect('your_succsess_url')
# in case the form is not valid call back the view
# which handle the 3 form display
return 3_forms_view(request)
def view_b(request):
form_b = YourFormB(request.POST)
if form_b.is_valid():
#do something
form_b.save()
return HttpResponseRedirect('your_succsess_url')
# in case the form is not valid call back the view
# which handle the 3 form display
return 3_forms_view(request)
#same thing for view c
<form action="{% url 'view_a_url_name' %}" method="post">
{% csrf_token %}
{{ form_a.as_p }}
<button type="submit">Submit A</button>
</form>
<form action="{% url 'view_b_url_name' %}" method="post">
{% csrf_token %}
{{ form_b.as_p }}
<button type="submit">Submit B</button>
</form>
<form action="{% url 'view_c_url_name' %}" method="post">
{% csrf_token %}
{{ form_c.as_p }}
<button type="submit">Submit C</button>
</form>