管理者が手動でアカウントを起動する必要があるようなdjango-registrationの設定方法を教えてください。アカウントを手動で起動する必要があるようなdjango-registrationの設定方法は?
電子メールのリンクをクリックすると、管理者に電子メールが送信され、リンクをクリックするだけでアカウントが有効になります。
ジャンゴ登録で可能か、それとも何か他のものを使う必要がありますか?
管理者が手動でアカウントを起動する必要があるようなdjango-registrationの設定方法を教えてください。アカウントを手動で起動する必要があるようなdjango-registrationの設定方法は?
電子メールのリンクをクリックすると、管理者に電子メールが送信され、リンクをクリックするだけでアカウントが有効になります。
ジャンゴ登録で可能か、それとも何か他のものを使う必要がありますか?
django-registrationを使用すると、custom backendを書いて、カスタムアクティベーションのニーズを処理できます。
だから、自分でregister
とactivate
を実装して独自のバックエンドを作成します。ここで
register
機能実装する方法の例です:
def register(self, request, **kwargs):
username, email, password = kwargs['username'], kwargs['email'], kwargs['password1']
if Site._meta.installed:
site = Site.objects.get_current()
else:
site = RequestSite(request)
new_user = RegistrationProfile.objects.create_inactive_user(username, email,
password, site,
send_email=False)
# send an email to the admins with user information
send_new_user_notification(new_user) # you would write this function
signals.user_registered.send(sender=self.__class__,
user=new_user,
request=request)
return new_user
キーポイントはsend_email
がfalseに設定されていることを確認することです。ユーザーがアクティベーションリンクを取得できないようにします。次に、管理者に送信された電子メールにアクティベーションリンクがあるかどうか、または管理者にコンテンツがあり、[アクティブ]ボックスにチェックマークを付けるだけであれば、それを判断できます。
あなたはdjango.contrib.auth
からAuthenticationForm
を使用する場合、それはis_active
Falseのですが、その後、アクティブなユーザーが必要とするすべての要求のために、以下のチェックを実行することを確認してくださいことを使用していない場合は、ユーザーに自動的に拒否します:
def restricted_view(request):
if request.user and request.user.is_active:
#continue with the code
独自のデコレータを書くこともできます(ポインタについては@login_required
をご覧ください)。 @login_required
はではなく、であることを確認してください。is_active
を確認してください。