我已经使用django-registration创建了一个注册系统。我已经扩展了RegistrationFormTermsOfService,如下所示。它工作得很好,除非有任何字段无效,页面会被刷新,所有字段都会被清除,因此用户必须重新输入所有内容。这是django注册的默认行为吗?我真的不想更改django注册码。有没有办法让它正常工作,让字段填充用户到目前为止输入的内容?
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')发布于 2011-05-02 01:20:40
Django注册不会“刷新”表单,如果输入无效,视图将返回填充了已发布数据的表单。
您是否正在将表单传递给注册视图?
你的url.py里有这样的东西吗?
url(r'^register/$', 'registration.views.register', {'form_class':UserCreationFormExtended}),你定义的Meta类对我来说似乎没有用,你真的需要它吗?init也是非常无用的,因为你可以用下面的代码得到同样的结果:
email = forms.EmailField(label=("Email"), required= True, help_text = "We'll send...")但代码更少。
希望它能有所帮助:)
https://stackoverflow.com/questions/5849214
复制相似问题