我是Django的新手。在一个项目中,我必须使用表单在Django中为多个模型输入输入。 我为每个模型编写了函数(在views.py中)及其相应的Django模板(在模板文件夹中)。 比如,我的添加教师功能是,
def add_teacher(request):
form = TeacherForm()
if request.method=="POST":
form = TeacherForm(request.POST)
if form.is_valid():
form.save(commit=True)
return index(request)
else:
print(form.errors)
return render(request,"billing/add_teacher.html",{"form":form})
结算/ add_teacher.html模板是,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Add Teacher</title>
</head>
<body>
<h1>Add a Discipline</h1>
<div>
<form id="teacher_form" method="post" action="/billing/add_teacher/">
{% csrf_token %}
{% for hidden in form.hidden_fields %}
{{ hidden }}
{% endfor %}
{% for field in form.visible_fields %}
{{ field.errors }}
{{ field.help_text }}
{{ field }}
{% endfor %}
<input type="submit" name="submit" value="Add Teacher"/>
</form>
</div>
</body>
</html>
现在,我想为我的所有函数使用一个模板。例如,我希望在Django模板上下文处理器的帮助下将此模板用于所有函数。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{ title }}</title>
</head>
<body>
<h1>{{ h1 }}</h1>
<div>
<form id={{ form_id }} method="post" action="{{ action }}">
{% csrf_token %}
{% for hidden in form.hidden_fields %}
{{ hidden }}
{% endfor %}
{% for field in form.visible_fields %}
{{ field.errors }}
{{ field.help_text }}
{{ field }}
{% endfor %}
<input type="submit" name="submit" value={{ value }}/>
</form>
</div>
</body>
</html>
但是当我返回render()函数时,我只能设置上下文或表单。例如,我可以使用其中一个,
return render(request,"billing/add_teacher.html",{"form":form})
,或者
return render(request,"billing/add_teacher.html",context= context_dict)
我如何一起使用这两个? 像,
return render(request,"billing/add_teacher.html",{"form":form},context =context_dict)
谢谢。
答案 0 :(得分:1)
尝试以下
context_dict.update({"form":form})
return render(request, "billing/add_teacher.html", context=context_dict)