如何重用已更改标签的 Django 模型表单?

问题描述 投票:0回答:1

在 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类来改变它的属性?

django django-models django-forms django-templates modelform
1个回答
0
投票

您可以像这样更改标签:

teacher_form.fields['first_name'].label = "Teacher's Name"
teacher_form.fields['last_name'].label = "Teacher's Surname"
© www.soinside.com 2019 - 2024. All rights reserved.