Django-registration очищает все поля, если какие-либо из них недействительны
-
27-10-2019 - |
Вопрос
Я создал систему регистрации, используя Django-Registration. Я расширил регистрационные системы, как показано ниже. Все работает нормально, за исключением того, что какое -либо поле недействительна, страница обновляется, и все поля очищены, поэтому пользователь должен снова ввести все. Это поведение по умолчанию для 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...")
Но с меньшим кодом.
Надеюсь, поможет :)