1

django-registrationを使用して登録システムを作成しました。以下に示すように、RegistrationFormTermsOfServiceを拡張しました。いずれかのフィールドが無効である場合を除いて、すべて正常に機能します。ただし、ページが更新され、すべてのフィールドがクリアされるため、ユーザーはすべてを再入力する必要があります。これは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')
4

1 に答える 1

0

Django-registration はフォームを「フラッシュ」しません。入力が有効でない場合、ビューは投稿されたデータで満たされたフォームを返します。

ビューを登録するためにフォームを渡していますか?

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

しかし、より少ないコードで。

それが役に立てば幸い :)

于 2011-05-01T17:20:40.020 に答える