django后台的使用

自建用户表

用户表主要控制3张表python

# 修改auth模块的用户表指向
AUTH_USER_MODEL = 'api.User'
# 重点:
# 1)auth认证6表必须在第一次数据库迁移前肯定,第一次数据库迁移完成
# 2)完成数据库迁移,出现了auth的用户表迁移异常,须要删除的数据库迁移文件
#       User表所在的自定义应用下的、admin组件下的、auth组件下的
from django.db import models

# Create your models here.

from django.contrib.auth.models import AbstractUser


class User(AbstractUser):
    mobile = models.CharField(max_length=11, unique=True)

    class Meta:
        db_table = 'od_user'  # 从新给表命名
        verbose_name = '用户表'  # 后台登录显示表名
        verbose_name_plural = verbose_name

    def __str__(self):  # 用一个字段来表示一个表
        return self.username

auth组件中的六个表

RABC:基于角色的访问权限数据库

理解参照下表django



Content_type表

content_type 主要是和permission提供做用,是django创建的表api

# 给Django中的全部模块中的全部表进行编号存储到content_type表中
# 应用一:权限表的权限是操做表的,全部在权限表中有一个content_type表的外键,标识该权限具体操做的是哪张表
# 应用二:价格策略

"""
Course:
name、type、days、price、vip_type
基础  免费课  7      0
中级  学位课  180    69
究极  会员课  360         至尊会员


Course:
name、type、days、content_type_id
基础  免费课  7    null
中级  学位课  180   1
究极  会员课  360   2

app01_course_1
id、price

app01_course_2
id vip_type

content_type表(Django提供)
id、app_label、model
1   app01    course_1
2   app01    course_2
"""

后台显示

注册

在admin.py文件夹中进行注册,在后台能够显示app

from django.contrib import admin

# Register your models here.

from . import models
admin.site.register(models.User)#注册user表

注册显示重写

若是不重写的话,在添加用户的时候不能直接添加,由于密码是明文的,因此在后台添加的时候,须要进行重写ide

from django.contrib.auth.admin import UserAdmin函数

在后台全部的展现和输入均可以由这个模块进行控制3d

能够本身控制重写的内容code

主要是重写里里面的属性blog

from django.contrib import admin

from . import models


# admin注册自定义User表:密文操做密码
from django.contrib.auth.admin import UserAdmin as AuthUserAdmin
class UserAdmin(AuthUserAdmin):
    add_fieldsets = (
        (None, {
            'classes': ('wide',),
            # 添加用户界面可操做的字段
            'fields': ('username', 'password1', 'password2', 'mobile', 'email', 'is_staff', 'is_active'),
        }),
    )
    list_display = ('username', 'mobile', 'email', 'is_staff', 'is_active')

# 明文操做密码,admin可视化添加的用户密码都是明文,登陆时用的是密文,因此用户没法登陆
# admin.site.register(models.User)
admin.site.register(models.User, UserAdmin)


admin扩展功能

class ArticleConfig(admin.ModelAdmin):
    list_display = ['title','create_time']  # 配置展现字段
    list_display_links = ['title','create_time']  # 指定多个跳转标签
    search_fields = ['title']  # 指定查询  多个字段默认是or的关系

    def patch_init(self,queryset):
    pass
    patch_init.short_description = '批量更新'
    actions = [patch_init,]  # 自定义批量处理函数

    list_filter = ['tags','category']  # 定义外键字段的过滤

相关文章
相关标签/搜索