Python Django 无法在一个模板中显示两个表单
Posted
技术标签:
【中文标题】Python Django 无法在一个模板中显示两个表单【英文标题】:Python Django Unable to display two forms in one template 【发布时间】:2018-09-24 20:28:59 【问题描述】:我在一个模板中显示两个表单时遇到问题。如果我从views.py 中删除'form': form
或'obj': obj
这些表单之一,则剩余表单将正确显示。这是我第一次需要在一个模板中使用两个表单,所以我不知道我的 views.py 是否正确。
这是我的意见.py
def Form(request):
form = ResgisterStud(request.POST)
obj = SomeForm(request.POST)
if request.recaptcha_is_valid and form.is_valid()and request.method=='POST' and 'student' in request.POST:
form.save(commit=False)
form.save()
messages.success(request, 'Saved student')
return render(request, 'form.html', 'form': form, 'obj': obj)
if request.method == 'POST' and 'disponnibility' in request.POST:
obj.save(commit=False)
obj.save()
messages.success(request, 'Saved Dispo')
return render(request, 'form.html', 'form': form, 'obj': obj)
else:
return render(request, 'form.html', 'form': form, 'obj': obj)
我的表单.html
<form method='post'>
% csrf_token %
obj.as_p
<input name="disponnibility" type='submit' value='submit'>
</form>
<form action="% url "form" %" method="post" enctype="multipart/form-data">
% csrf_token %
<div class="row">
<div class="col-md-6 form-group">
form.Nom|add_class:"form-control"
</div>
<div class="col-md-6 form-group">
form.Prenom|add_class:"form-control"
</div>
<div class="col-md-6 form-group">
form.Telephone|add_class:"form-control"
</div>
<div class="col-md-12 text-center">
<button name="student" class="btn" type="submit">Submit Now</button>
</div>
</div>
</form>
【问题讨论】:
【参考方案1】:这与表单无关,只是render
函数的语法。它需要一个字典作为上下文,而不是两个;您需要将两个对象放在同一个字典中。
return render(request, 'form.html', 'form': form, 'obj': obj)
【讨论】:
以上是关于Python Django 无法在一个模板中显示两个表单的主要内容,如果未能解决你的问题,请参考以下文章
python-django模板继承在引用基中的多个块时不起作用
在 django 模板中显示 ASCII 字符(python 2)
python-django模板继承在引用base中的多个块时不起作用