如果所有字段无效,则Django-registration会清除所有字段

问题描述

|| 我已经使用django-registration创建了一个注册系统。我已经扩展了RegistrationFormTermsOfService,如下所示。一切正常,除非任何字段无效,页面会刷新并清除所有字段,因此用户必须再次输入所有内容。这是django-registration的认行为吗?我真的不想更改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,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注册不会“刷新”表单,如果输入无效,则视图返回填充有已发布数据的表单。 您是否通过表格注册视图? 您的url.py中有类似的内容吗?
url(r\'^register/$\',\'registration.views.register\',{\'form_class\':UserCreationFormExtended}),
您定义的Meta类对我来说似乎毫无用处,您真的需要吗? 初始化也几乎没有用,因为您可以得到以下相同的结果:
email = forms.EmailField(label=(\"Email\"),required= True,help_text = \"We\'ll send...\")
但代码更少。 希望能帮助到你 :)