我需要在登录时比较一个布尔变量(变量名称:批准(
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()
装饰器会收到一个必须返回True
或False
的回调。您可以在文档中阅读有关它的更多信息。
如果这对您没有帮助,请详细介绍您想要做的事情以及为什么此方法无法帮助您。