私はプロジェクトのためにDjangoの登録の2.3を使用して、以下を標準RegistrationFormを上書きしようとしている:ジャンゴ・登録オーバーライド登録フォーム
class MyRegistrationForm(RegistrationForm):
captcha = NoReCaptchaField()
class Meta:
model = User
fields = ['first_name', 'last_name', 'username', 'email', 'password1', 'password2']
widgets = {
'first_name' : forms.TextInput(attrs={'class' : 'form-control'}),
'last_name' : forms.TextInput(attrs={'class' : 'form-control'}),
'username' : forms.HiddenInput(),
'email' : forms.EmailInput(attrs={'class' : 'form-control'}),
'password1' : forms.PasswordInput(attrs={'class' : 'form-control'}),
'password2' : forms.PasswordInput(attrs={'class' : 'form-control'}),
}
私は、その後で私urls.pyからこれを呼んでいますcaptcha
、first_name
とlast_name
フィールドがフォームコントロールを使用してレンダリングされたテンプレートに
url(r'^accounts/register/$', RegistrationView.as_view(form_class=MyRegistrationForm), name='registration_register'),
、username
が隠されているが、他のフィールドは、クラスなしでレンダリングされます。私は何をする必要がありますか?
を使用。ドキュメントの[note](https://docs.djangoproject.com/en/1.11/topics/forms/modelforms/#overriding-the-default-fields)を参照してください。あなたの場合、 'email'は' RegistrationForm'によって宣言され、 'password1'と' password2'は 'UserCreationForm'(' RegistrationForm'サブクラス)によって宣言されます。したがって、これらの3つのフィールドは 'widgets'で上書きすることはできません。 – Alasdair