に基づいて、Djangoで独自のカスタム登録モジュールをローリングしていますdjango.contrib.auth
。私の登録モジュールにはいくつかの追加機能があり、django-registrationやdjango-emailchangeなどの現在使用している他のdjangoモジュールへの依存を減らすのに役立ちます。私はここで何をすべきかという問題に遭遇しました。
注:すべてのユーザーアカウントはモデルに基づいていdjango.contrib.auth.models.User
ます。
ユーザーが「サインアップ」リンクをクリックすると、リクエストは。という名前の私のビューに渡されregister
ます。ユーザー名、メールアドレス、パスワード1、パスワード2の4つのフィールドを持つカスタムフォームがあります。フォームはに基づいていdjango.forms.Form
ます。フォームは基本的な検証を提供します。たとえば、passoword1とpassword2は電子メールです。メールアドレス/ユーザー名は存在しません。
データがレジスタビューにPOSTで戻されたらis_valid()
、フォームのメソッドを呼び出します。その後、で呼び出されるManagerメソッドを呼び出して新しいユーザーを作成しcreate_user()
ますdjango.contrib.auth.models.UserManager
。この時点で、アクティベーションメールの送信など、カスタム機能を追加する必要があります。ベストプラクティスの方法として、このロジックはどこにあるべきですか?User
これはモデルのメソッドに含める必要がありますか?それは現在の場所、つまりモデルのマネージャーである必要がありますか?save()
または、これをサインアップフォームのカスタムメソッドに配置する必要がありますか?
ありがとう。