Django自定義用戶表+自定義admin后臺中的字段實例
1.自定義用戶表 注意事項
必須在settings中配置AUTH_USER_MODEL這個字段
# 覆蓋默認的用戶模型,使用自定義用戶模型 # 語 法:'app的名稱.自定義用戶模型的名稱' AUTH_USER_MODEL = 'admi.UserModel'
2.在models文件中編寫UserModel類
from django.db import models
from django.contrib.auth.models import AbstractUser
# Django框架將createsuperuser創(chuàng)建的用戶以及在amdin后臺添加的用戶,默認都保存在了auth_user這個表中,但是這個表的字段是固定的,如果想給用戶擴展一些字段(年齡、性別、住址等),就需要重寫User表了,不能再使用auth_user這個表了。
class UserModel(AbstractUser):
# AbstractUser這個類,也就是Django框架默認使用的一個用于管理用戶的User類,這個類生成一個auth_user表。所以,要擴展用戶屬性,可以繼承AbstractUser,在子類UserModel中實現擴展。
nick_name=models.CharField(max_length=25,verbose_name='昵稱')
user_address=models.CharField(max_length=35,verbose_name='住址')
class Meta:
# 配置自定義用戶表名是user_table
db_table='user_table'
verbose_name='用戶'
verbose_name_plural=verbose_name
添加完成后,在當前app的admin文件中注冊
# 只要使用admin后臺系統(tǒng),所有的Model必須在這里進行注冊 admin.site.register(UserModel)
3.測試
編寫完上述步驟后,makemigrations、migrate同步數據庫

然后打開用戶的數據庫管理工具,可以看到user_table這個表已經生成了,而且表中生成了我們創(chuàng)建的兩個字段
nick_name和user_address

4.進入admin后臺測試
先使用createsuper創(chuàng)建一個superuser用戶

通過admin登錄到后臺

后臺自動生成了一個字段代表用戶名,我們把UserModel中Meat下verbose_name=‘用戶' 修改成用戶名,然后刷新admin頁面,admin中的字段也會隨之改變。
(這樣也不需要更新數據庫,是不是很方便呢?)

5.后臺字段擴展
a.更改用戶名顯示的內容(只顯示admin是不是很單調?)
在UserModel中使用__str__魔法方法

具體效果

b.讓后臺信息顯示多個字段
# 修改app下的admin.py文件
from django.contrib import admin
from .models import *
class UserAdmin(admin.ModelAdmin):
# 設置顯示數據庫中哪些字段
list_display = ['username','password','nick_name','user_address']
admin.site.register(UserModel,UserAdmin)
效果

以上這篇Django自定義用戶表+自定義admin后臺中的字段實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
django生產環(huán)境搭建(uWSGI+django+nginx+python+MySQL)
本文主要介紹了django生產環(huán)境搭建,主要包括uWSGI+django+nginx+python+MySQL,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08
Tensorflow中的降維函數tf.reduce_*使用總結
這篇文章主要介紹了Tensorflow中的降維函數tf.reduce_*使用總結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04

