4

Django-Registration パッケージを使用して、ユーザーにアカウントを作成させ、それらを認証させ、webapp にログインさせています。

ただし、アカウント作成のフォーム/ビューでは、ユーザーに名/姓を尋ねません (これらのフィールドはモデル BTW の一部です)。メールアドレス、ログインID、パスワードの入力を求めるだけです(2回)。ユーザーの名/姓を尋ねたいと思います(これらのフィールドはオプションにすることができます...しかし、それでも尋ねる必要があります)。この情報を要求するように変更するフォーム ファイルとビュー ファイルが見つかりません。テンプレートファイルを修正しました。しかし、フォームとビューの変更がなければ役に立ちません。これはどのように行われますか?

4

2 に答える 2

6

forms.py で、DjangoRegistration フォームを次のように拡張します。

class MyExtendedForm(RegistrationForm):
    first_name = forms.CharField(widget=forms.TextInput(label="first_name"))
    last_name = forms.CharField(widget=forms.TextInput(label="last_name"))

urls.py、この拡張形式を使用するように django-registration に指示します。

# using my registration form to override the default
(r'^register/$', 
    register, 
    {'backend': 'registration.backends.default.DefaultBackend',
     'form_class': MyExtendedForm}),

user_created追加情報を保存するように定義します。

def user_created(sender, user, request, **kwargs):
    """
    Called via signals when user registers. Creates different profiles and
    associations
    """
    form = MyExtendedForm(request.Post)
    # Update first and last name for user
    user.first_name=form.data['first_name']
    user.last_name=form.data['last_name']
    user.save()

次に、django-registration からのシグナルを登録して、登録が処理された後に関数を呼び出します。

from registration.signals import user_registered
user_registered.connect(user_created)
于 2013-04-02T21:07:52.953 に答える