Django-Registrationは、それらのいずれかが無効な場合、すべてのフィールドをクリアします
-
27-10-2019 - |
質問
Django-Registrationを使用して登録システムを作成しました。以下に示すように、登録FormtermsofServiceを拡張しました。ページが更新され、すべてのフィールドがクリアされているため、ユーザーが再びすべて入力する必要がある場合を除き、すべてのフィールドが無効な場合を除き、すべて正常に機能します。これはDjango-Registrationのデフォルトの動作ですか? Django-Registrationコードを本当に変更したくありません。とにかくこれを機能させるために、それはユーザーがこれまでに入力したものでフィールドに住むことを残しますか?
class UserCreationFormExtended(RegistrationFormTermsOfService):
email = forms.EmailField(label=("Email"), help_text = "We'll send...")
username = forms.RegexField(
label='Username:',
max_length=35,
min_length=6,
regex=r'^[\w-]{6,35}$',
help_text = 'Between 6 and 35 characters',
error_message = 'Enter between 6 and 35 alphanumeric characters.')
password1 = forms.RegexField(
max_length=30,
min_length=6,
regex=r'^[\w-]{6,35}$',
help_text = 'Between 6 and 35 characters',
error_message = 'Enter between 6 and 35 characters.')
def __init__(self, *args, **kwargs):
super(UserCreationFormExtended, self).__init__(*args,
**kwargs)
self.fields['email'].required = True
class Meta:
model = User
fields = ('username', 'email')
解決
Django-Registrationはフォームを「フラッシュ」しません。入力が有効でない場合、ビューは投稿されたデータで満たされたフォームを返します。
ビューを登録するためにフォームを渡していますか?
あなたはあなたのurl.pyにそのようなものがありますか?
url(r'^register/$', 'registration.views.register', {'form_class':UserCreationFormExtended}),
あなたが定義したメタクラスは私には役に立たないようです、あなたは本当にそれが必要ですか?あなたはこれで同じ結果を得ることができるので、このイニシもかなり役に立ちません:
email = forms.EmailField(label=("Email"), required= True, help_text = "We'll send...")
しかし、コードが少ない。
それが役に立てば幸い :)
所属していません StackOverflow