在 Django 应用程序中,我有一个 Person 模型,我想在表单中使用它来捕获学生和教师数据。两种形式的字段相同,但标签应该不同。在将表单传递到模板之前如何更改标签?
具有 Student_form 默认标签的表单类:
class ProfileForm(forms.ModelForm):
class Meta:
model = Person
fields = ('first_name', 'last_name', 'email')
labels = {
'first_name': label("Student's Name"),
'last_name': label("Student's Surname")
}
我尝试按如下方式更改标签属性,但 Django 说 ProfileForm 没有属性“标签”。
def add_profile(request):
teacher_form = ProfileForm(prefix = 'teacher')
teacher_form.labels['first_name'] = label("Teacher's Name")
teacher_form.labels['last_name'] = label("Teacher's Surname")
return render(request, "school/add_profile.html", {
"profileform" : teacher_form
})
有没有办法访问Meta类来改变它的属性?
您可以像这样更改标签:
teacher_form.fields['first_name'].label = "Teacher's Name"
teacher_form.fields['last_name'].label = "Teacher's Surname"