Django——admin功能、註冊模型類、模型管理類

Django 初始化後臺管理

​ 當一個 Django 項目第一次使用 admin 後臺管理功能時,需要通過兩步實現,第一步是本地化操作,第二步創建管理員

本地化

​ 實現語言和時區本地化,修改 Django 項目的 settings.py 文件,找到如下代碼進行修改:

# Internationalization
# https://docs.djangoproject.com/en/3.0/topics/i18n/

# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-hans'

# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'

​ 註釋掉的是原代碼,'zh-hans'代表中國,Asia/Shanghai代表亞洲上海,修改這兩項後,在隨後的 admin 界面就可以實現中文了

創建管理員

​ 第二步是在註冊一個該 Django 項目的管理員賬號,在項目文件夾下使用命令行運行python manage.py createsuperuser,根據其步驟提示,即可完成創建,過程如下:

E:\django\djDemo>python manage.py createsuperuser
Username (leave blank to use 'stephencurry'): lmh
Email address: [email protected]
Password:
Password (again):
Superuser created successfully.

​ 如上所示即創建完成,這時鍵入python manage.py runserver啓動項目,進入項目的地址的 admin 目錄下,就可以進入 admin 後臺管理界面(地址爲127.0.0.1:8000/admin

在這裏插入圖片描述

​ 使用剛纔註冊的用戶名密碼登錄後,即可進入 admin 後臺管理主頁(我這個新項目沒本地化所以是英文,嘿嘿嘿)

在這裏插入圖片描述

使用 admin 管理 model

​ 通過 Django 的 admin 後臺管理功能,我們可以對自己的 model 模型進行管理,但是在這之前要先將模型類在 admin 中進行註冊

註冊模型類

​ model 模型是屬於 app 的,所以我們要在 app 下的 admin.py 中對我們在 models.py 中創建的模型進行註冊,這裏 models.py 已經創建好了,代碼如下:

from django.db import models

class BookInfo(models.Model):
    btitle = models.CharField(max_length=255)
    bpub_date = models.DateField()

class User(models.Model):
    uname = models.CharField(max_length=30)
    upassword = models.CharField(max_length=20)
    ugender = models.BooleanField(default=True)
    ubirth = models.DateField()
    ubook = models.ForeignKey('BookInfo', on_delete=models.CASCADE)

​ models.py 中定義了兩個 model,現在我們要在 admin 中對他們進行註冊

​ 註冊模型使用 admin.site.register(model)方法進行註冊:

from django.contrib import admin
from .models import BookInfo, User

# Register your models here.
admin.site.register(BookInfo)
admin.site.register(User)

​ Django 有熱加載功能,我們修改完代碼不需要重新啓動項目,只需要等它自己更新完刷新界面就好了,刷新後,就會在 admin 界面中看到模型類:

在這裏插入圖片描述

​ 隨後我們便可以在這個界面中對其進行添加和刪除數據的操作,直接鼠標點擊就可以完成,就不介紹了!

自定義管理頁面(模型管理類)

​ 我們也可以通過自定義模型管理類,來自己定義 admin 頁面中 model 的顯示內容

​ 方法就是在 admin.py 中創建模型管理類:

class BookInfoAdmin(admin.ModelAdmin):
    
    list_display = ['id', 'btitle', 'bpub_date']

class UserAdmin(admin.ModelAdmin):
    list_display = ['uname', 'ubook']

​ 模型管理類必須繼承admin.ModelAdmin,在模型管理類中定義名爲list_display的 list,將我們想要 admin 頁面進行顯示的字段寫入這個 list 即可

​ 等待項目更新後刷新頁面,即可看到我們想讓 admin 頁面顯示的字段
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章