django使用 用户认证模块报错

django项目 认证 用到
user = authenticate(username=username, password=password)
测试时发现 输入正确密码user返回为None 错误密码 也返回None
到数据库中 把is_active 改成 1 就能返回正确的user对象
否则返回None 并且报错
AttributeError: ‘NoneType’ object has no attribute ‘split’

**解决:**导致这个错误的原因是django自动关联了数据库的 is_active 好像django2.0向上才有的坑 只需到setting配置文件中 加入
AUTHENTICATION_BACKENDS = [‘django.contrib.auth.backends.AllowAllUsersModelBackend’]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django框架的用户认证模块可以帮助开发者轻松地实现用户注册、登录、登出等功能。下面是一个简单的示例: 1. 配置settings.py文件 首先需要在settings.py文件中配置以下代码: ```python INSTALLED_APPS = [ # ... 'django.contrib.auth', 'django.contrib.contenttypes', # ... ] AUTH_USER_MODEL = 'myapp.CustomUser' # 自定义用户模型 LOGIN_REDIRECT_URL = 'home' # 登录成功后重定向到该URL LOGOUT_REDIRECT_URL = 'home' # 登出成功后重定向到该URL ``` 2. 创建自定义用户模型 在models.py文件中创建自定义用户模型: ```python from django.contrib.auth.models import AbstractUser class CustomUser(AbstractUser): # 添加自定义字段 pass ``` 3. 创建注册视图 在views.py文件中创建注册视图: ```python from django.contrib.auth.forms import UserCreationForm from django.urls import reverse_lazy from django.views import generic class SignUpView(generic.CreateView): form_class = UserCreationForm success_url = reverse_lazy('login') template_name = 'signup.html' ``` 4. 创建登录视图 在views.py文件中创建登录视图: ```python from django.contrib.auth.views import LoginView class MyLoginView(LoginView): template_name = 'login.html' ``` 5. 创建登出视图 在views.py文件中创建登出视图: ```python from django.contrib.auth.views import LogoutView class MyLogoutView(LogoutView): template_name = 'logout.html' ``` 6. 创建模板 在templates文件夹中创建signup.html、login.html和logout.html模板文件。 7. 配置URL 在urls.py文件中配置以下代码: ```python from django.urls import path from .views import SignUpView, MyLoginView, MyLogoutView urlpatterns = [ # 注册 path('signup/', SignUpView.as_view(), name='signup'), # 登录 path('login/', MyLoginView.as_view(), name='login'), # 登出 path('logout/', MyLogoutView.as_view(), name='logout'), ] ``` 以上是一个简单的Django用户认证模块的示例,可以根据具体需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值