django admin 默认已经存在了一个用户认证,这个时候可以偷个小懒,直接用 django 自带的,就不需要自己写用户认证了

1、目录结构:

基于 django 自带的用户认证进行用户认证

 

 

2、代码 

  • 在 settings.py 中添加一行
    # 如果不添加该行,则在未登录状态打开页面的时候验证是否登录的装饰器跳转到 /accounts/login/ 下面
    # 第一种解决方法就是修改 settings.py 中的 LOGIN_URL
    # 第二种解决方法是在 url 中匹配该 url
    LOGIN_URL = "/login/"

     

  • CRM/app01/models.py
    from django.db import models
    from django.contrib.auth.models import User
    
    class UserProfile(models.Model):
        """账户信息表"""
        user = models.OneToOneField(User)   # 跟 django 的 User 表做一个一对一
        name = models.CharField(max_length=32)
        roles = models.ManyToManyField("Role", blank=True, null=True)

     

  • CRM/CRM/urls.py
    from django.conf.urls import url, include
    from django.contrib import admin
    from CRM import views
    
    
    urlpatterns = [
        url(r'^crm/', include("app01.urls")),
        url(r'^login/', views.acc_login),
        url(r'^logout/', views.acc_logout),
    
    ]
    View Code

相关文章: