Django 如果某人没有(例如)注册,我如何阻止他们登录?
我使用的是Django 如果某人没有(例如)注册,我如何阻止他们登录?,django,Django,我使用的是django.contrib.auth.views.login,但我想阻止用户在设置了标志后登录,例如,他们尚未完成注册 我怎么能这样做呢 到目前为止,我只想到了在django.contrib.auth.views.login登录后检查恶意黑客的方法,并在重定向之前再次注销它们,而重定向实际上并没有打开。我建议查看一下auth用户模型上的is\u active布尔字段的文档。 根据文档,由您(开发人员)在视图或身份验证后端实现逻辑,以确定是否使用is\u active字段作为标志对用
django.contrib.auth.views.login
,但我想阻止用户在设置了标志后登录,例如,他们尚未完成注册
我怎么能这样做呢
到目前为止,我只想到了在django.contrib.auth.views.login登录后检查恶意黑客的方法,并在重定向之前再次注销它们,而重定向实际上并没有打开。我建议查看一下auth用户模型上的
is\u active
布尔字段的文档。
根据文档,由您(开发人员)在视图或身份验证后端实现逻辑,以确定是否使用
is\u active
字段作为标志对用户进行身份验证。但是由于您使用的是django.contrib.auth.views.login
view,默认表单AuthenticationForm
为您检查is\u active
标志,如果未设置is\u active
标志,则应返回False。我建议查看auth用户模型上is\u active
布尔字段的文档。
根据文档,由您(开发人员)在视图或身份验证后端实现逻辑,以确定是否使用
is\u active
字段作为标志对用户进行身份验证。但是由于您使用的是django.contrib.auth.views.login
view,默认窗体AuthenticationForm
为您检查是否处于活动状态
标志,如果未设置是否处于活动状态
标志,则应返回False。是否处于活动状态
是一个不错的选择,但我将执行自定义字段状态(默认值为0)
。注册后如果用户:
,则我将发送邮件
以获得激活链接。如果用户单击注册链接,我将把状态更改为1
我将通过(来自django.contrib.auth.forms导入身份验证表单)检查此状态。
更新:
好的,我假设您正在使用django.contrib.auth.views.login
进行身份验证。在这种情况下,您可以使用AuthenticationForm
url.py
forms.py
处于活动状态
是一个不错的选择,但我将执行自定义字段状态(默认值为0)
。注册后如果用户:
,则我将发送邮件
以获得激活链接。如果用户单击注册链接,我将把状态更改为1
我将通过(来自django.contrib.auth.forms导入身份验证表单)检查此状态。
更新:
好的,我假设您正在使用django.contrib.auth.views.login
进行身份验证。在这种情况下,您可以使用AuthenticationForm
url.py
forms.py
您可以将数据库中的ActivateAccount字段默认设置为0。然后,他们必须通过点击服务器将通过电子邮件发送的链接来激活该帐户。活动字段已经存在,将其用作标记是-我有此字段-问题是,如果此字段不正确,我如何使django登录过程拒绝该人登录?您可以有一个ActivateAccount字段,在数据库中,默认设置为0。然后,他们必须通过点击服务器将通过电子邮件发送的链接来激活帐户。活动字段已经存在,将其用作标记是-我有此字段-问题是,如果此字段不正确,我如何使django登录过程拒绝登录该人?我有一个类似的“自定义字段”位置。我还不知道如何让AuthenticationForm在允许某人登录之前检查它的状态。。。这就是我的问题。我更新了我的答案。。这可能对你有帮助。。让我知道。出于好奇,您是如何知道AuthenticationForm要覆盖此方法的?如果您发现我的答案对所问问题有用且合适,请接受。(我是通过一个类似的“自定义字段”了解这个方法的)地点。我还没有看到的是如何让AuthenticationForm在允许某人登录之前检查其状态…这就是我的问题所在。我更新了我的答案。它可能会帮助你。让我知道。出于好奇,你怎么知道AuthenticationForm有此方法可以覆盖?如果你发现我的答案对问题有用并且合适的话我问,请接受它
(r'^accounts/login/$', 'django.contrib.auth.views.login', authentication_form:PickyAuthenticationForm),
class PickyAuthenticationForm(AuthenticationForm):
def confirm_login_allowed(self, user):
if user.is_active:
profileObj = Profile.objects.filter(pk=user.id)
if profileObj.status == 1:
print('welcome new user')
pass
else:
print('Please verify email')