用戶表主要控制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
理解參照下表django
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)
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'] # 定義外鍵字段的過濾