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']  # 定義外鍵字段的過濾

相關文章
相關標籤/搜索