gpt4 book ai didi

django - 如何设置需要手动激活帐户的django-registration?

转载 作者:行者123 更新时间:2023-12-04 15:15:37 24 4
gpt4 key购买 nike

如何设置需要由管理员手动激活帐户的 django-registration?

在帐户持有人单击电子邮件中的链接后,我希望向管理员发送一封电子邮件,他还需要单击一个链接,然后该帐户才会处于事件状态。

django-registration 是否可以,或者我是否需要使用其他东西,以及使用什么?

最佳答案

django-registration 允许你写一个 custom backend处理自定义激活需求。

所以你要做的是创建你自己的后端,实现 registeractivate你自己。

以下是如何实现 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设置为假;这将阻止用户获得激活链接。然后,您可以决定发送给管理员的电子邮件是否包含激活链接,或者您是否对他们转到管理员并选中“事件”框感到满意。

如果您使用 AuthenticationForm来自 django.contrib.auth那么它会自动拒绝 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 .

关于django - 如何设置需要手动激活帐户的django-registration?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4411924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com