如何設置django註冊帳戶需要由管理員手動激活?如何設置django註冊帳戶需要手動激活?
在帳戶持有人點擊電子郵件中的鏈接後,我希望電子郵件發送給管理員,他還需要點擊一個鏈接,然後才能激活該帳戶。
是否有可能與Django的註冊,或者我需要使用別的東西,以及使用什麼?
如何設置django註冊帳戶需要由管理員手動激活?如何設置django註冊帳戶需要手動激活?
在帳戶持有人點擊電子郵件中的鏈接後,我希望電子郵件發送給管理員,他還需要點擊一個鏈接,然後才能激活該帳戶。
是否有可能與Django的註冊,或者我需要使用別的東西,以及使用什麼?
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
假的,但如果你不使用,那麼要確保運行下面的檢查對於需要一個活躍的用戶的任何請求:
def restricted_view(request):
if request.user and request.user.is_active:
#continue with the code
您也可以編寫自己的裝飾器(請參閱@login_required
指針)。請注意,@login_required
確實不是檢查is_active
。