Django授权附加验证



我需要在登录时比较一个布尔变量(变量名称:批准(

If variable is true: 
    login success; 7
else 
    login error;

我在数据库中存储了变量。

我的表格:

class LoginForm(AuthenticationForm):
    username (...)
    password (...)

url:

`url(r'^login/$', auth_views.login, {'authentication_form': LoginForm},` `name='login'),`

视图:

def login(request):
    return render(request, 'registration/login.html')

如何更改默认登录以允许此信息?

限制基于某些权限

的限制访问

有一种非常不错的方法来检查是否通过了一些"测试"。在您的示例中,如果approved变量为True,则"测试"。您可以做这样的事情:

from django.contrib.auth.decorators import user_passes_test
def check_approved():
    # get the approved variable from database
    approved = True # or false, depends on what you read from the database
    return approved
@user_passes_test(check_approved)
def login(request):
    ...

因此,@user_passes_test()装饰器会收到一个必须返回TrueFalse的回调。您可以在文档中阅读有关它的更多信息。

如果这对您没有帮助,请详细介绍您想要做的事情以及为什么此方法无法帮助您。

最新更新