如何在Django模型表单中添加标签ID

时间:2019-06-22 08:42:43

标签: django django-forms

我正在使用 Django ModelForm 作为标签。但是,我不知道如何添加标签ID,并且在Internet上找不到任何内容。

UserForm

class UserForm(ModelForm):
    class Meta:
        model = User
        fields = ['first_name', 'last_name', 'email']
        widgets = {
            'first_name': forms.TextInput(attrs={'type': 'text', 'placeholder': 'First Name', 'class': 'form-control input-md'}),
            'last_name': forms.TextInput(attrs={'type': 'text', 'placeholder': 'Last Name', 'class': 'form-control input-md'}),
            'email': forms.EmailInput(attrs={'placeholder': 'Email', 'class': 'form-control input-md'}),
        }

        labels = {
            'first_name': "Họ",
            'last_name': "Tên",
            'email': "Email",
        }

名字标签

<label style="margin-left: -48px; margin-right: 48px;" class="col-md-4 control-label" for="">First Name</label>

1 个答案:

答案 0 :(得分:0)

  

会自动添加id字段,但是可以覆盖此行为。参见Automatic primary key fields

因此,您需要将id添加到 ModelForm fields中,然后使用labels类中的Meta更改其标签的形式。

class UserForm(ModelForm):
    class Meta:
        model = User
        fields = ['id', 'first_name', 'last_name', 'email']
        widgets = {
            'first_name': forms.TextInput(attrs={'type': 'text', 'placeholder': 'First Name', 'class': 'form-control input-md'}),
            'last_name': forms.TextInput(attrs={'type': 'text', 'placeholder': 'Last Name', 'class': 'form-control input-md'}),
            'email': forms.EmailInput(attrs={'placeholder': 'Email', 'class': 'form-control input-md'}),
        }

        labels = {
            'id': "ID",
            'first_name': "Họ",
            'last_name': "Tên",
            'email': "Email",
        }