2011-05-01 55 views
1

我已經創建了一個使用django註冊的註冊系統。我已經擴展了RegistrationFormTermsOfService,如下所示。這一切都可以正常工作,除非任何字段無效,頁面刷新並清除所有字段,因此用戶必須再次輸入所有內容。這是Django註冊的默認行爲?我真的不想更改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') 

回答

0

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...") 

但用更少的代碼。

希望它有幫助:)

+1

我仍然不清楚爲什麼窗體值爲我清除? – ErnieP 2011-05-01 18:09:36

相關問題