我很难调试这个。我想在扩展的confirm_password
RegModelForm
中排除modelform
UpdateRegModelForm
。我曾尝试在exclude
的Meta类中使用UpdateRegModelForm
,但在渲染confirm_password
时它似乎显示UpdateRegModelForm
。不知道如何前进。
class RegModelForm(forms.ModelForm):
org_admin_email = forms.CharField(
label='If you know who should be the Admin, please add their email address below.'
' We\'ll send them an email inviting them to join the platform as the organization admin.',
required=False,
widget=forms.EmailInput(attrs=({'placeholder': 'Email'}))
)
organization_name = forms.CharField(
max_length=255,
label='Organization Name',
widget=forms.TextInput(
attrs={'placeholder': 'Organization Name'}
)
)
confirm_password = forms.CharField(
label='Confirm Password', widget=forms.PasswordInput(attrs={'placeholder': 'Confirm Password'})
)
class Meta:
model = ExtendedProfile
fields = (
'confirm_password', 'first_name', 'last_name',
'organization_name', 'is_currently_employed', 'is_poc', 'org_admin_email',
)
labels = {
'is_currently_employed': "Check here if you're currently not employed.",
'is_poc': 'Are you the Admin of your organization?'
}
widgets = {
'first_name': forms.TextInput(attrs={'placeholder': 'First Name'}),
'last_name': forms.TextInput(attrs={'placeholder': 'Last Name'}),
'is_poc': forms.RadioSelect()
}
class UpdateRegModelForm(RegModelForm):
class Meta(RegModelForm.Meta):
exclude = ('confirm_password',)
答案 0 :(得分:2)
fields
和exclude
属性仅与从模型创建的字段相关。由于您已直接在表单中指定confirm_password
,因此始终存在。
删除它的方法是从表单的fields
字典中删除它。您可以使用__init__
方法执行此操作:
class UpdateRegModelForm(RegModelForm):
def __init__(self, *args, **kwargs):
super(UpdateRegModelForm, self).__init__(*args, **kwargs)
self.fields.pop('confirm_password')
您根本不需要在此子类中定义Meta。