Django框架admin後臺數據庫管理

創建超級用戶

django 提供了比較完善的後臺管理數據庫的接口,可供開發過程中調用和測試使用
django 會蒐集所有已註冊的模型類,爲這些模型類提拱數據管理界面,供開發者使用

  • 使用步驟:
    創建後臺管理帳號:
    $ python3 manage.py createsuperuser
    $ python3 manage.py createsuperuser
    Username (leave blank to use 'teenjeen'): teenjeen  # 此處輸入用戶名
    Email address: [email protected]  # 此處輸入郵箱
    Password: # 此處輸入密碼(密碼要複雜些,否則會提示密碼太簡單)
    Password (again): # 再次輸入重複密碼
    Superuser created successfully.
    
    用註冊的帳號登陸後臺管理界面
    後臺管理的登錄地址:http://127.0.0.1:8000/admin

管理自定義數據表

若要自己定義的模型類也能在 /admin 後臺管理界中顯示和管理,需要將自己的類註冊到後臺管理界面
添加自己定義模型類的後臺管理數據表的,需要用admin.site.register(自定義模型類) 方法進行註冊

  • 配置步驟如下:
    在應用app中的admin.py中導入註冊要管理的自定義模型類, 如:from . import models
    調用 admin.site.register() 方法進行註冊
    如: 在 bookstore/admin.py 添加如下代碼對Book類進行管理
    # file: bookstore/admin.py
    from django.contrib import admin
    # Register your models here.
    
    from . import models
    ...
    admin.site.register(models.Book)  # 將Book類註冊爲可管理頁面
    

修改後臺Models的展現形式

在admin後臺管理數據庫中對自定義的數據記錄都展示爲 XXXX object 類型的記錄,不便於閱讀和判斷
在用戶自定義的模型類中可以重寫 def __str__(self): 方法解決顯示問題,如:
在自定義模型類中重寫 __str__(self) 方法返回顯示文字內容:

class Book(models.Model):
    ...
    def __str__(self):
        return "書名" + self.title

模型管理器類

  • 作用:
    爲後臺管理界面添加便於操作的新功能。

  • 說明:
    後臺管理器類須繼承自 django.contrib.admin 裏的 ModelAdmin

  • 模型管理器的使用方法:
    <應用app>/admin.py 裏定義模型管理器類

    class XXXX_Manager(admin.ModelAdmin):
        ......
    

    註冊管理器與模型類關聯

    from django.contrib import admin
    from . import models
    admin.site.register(models.YYYY, XXXX_Manager) # 註冊models.YYYY 模型類與 管理器類 XXXX_Manager 關聯
    

    示例:

    # file : bookstore/admin.py
    from django.contrib import admin
    from . import models
    
    class BookAdmin(admin.ModelAdmin):
        list_display = ['id', 'title', 'price', 'market_price']
    
    admin.site.register(models.Book, BookAdmin)
    

    進入http://127.0.0.1:8000/admin/bookstore/book/ 查看顯示方式和以前有所不同

  • 模型管理器類ModelAdmin中實現的高級管理功能

    • list_display 去控制哪些字段會顯示在Admin 的修改列表頁面中。
    • list_display_links 可以控制list_display中的字段是否應該鏈接到對象的“更改”頁面。
    • list_filter 設置激活Admin 修改列表頁面右側欄中的過濾器
    • search_fields 設置啓用Admin 更改列表頁面上的搜索框。
    • list_editable 設置爲模型上的字段名稱列表,這將允許在更改列表頁面上進行編輯。
    • 其它參見https://docs.djangoproject.com/en/1.11/ref/contrib/admin/

數據庫表管理

  • 修改模型類字段的顯示名字
    模型類各字段的第一個參數爲 verbose_name,此字段顯示的名字會在後臺數據庫管理頁面顯示
    通過 verbose_name 字段選項,修改顯示名稱示例如下:

    title = models.CharField(
        max_length = 30,
        verbose_name='顯示名稱'
    )
    
  • 通過Meta內嵌類 定義模型類的屬性及展現形式
    模型類可以通過定義內部類class Meta 來重新定義當前模型類和數據表的一些屬性信息
    用法格式如下:

    class Book(models.Model):
        title = CharField(....)
        class Meta:
            1. db_table = '數據表名'
                - 該模型所用的數據表的名稱。(設置完成後需要立馬更新同步數據庫)
            2. verbose_name = '單數名'
                - 給模型對象的一個易於理解的名稱(單數),用於顯示在/admin管理界面中
            3. verbose_name_plural = '複數名'
                - 該對象複數形式的名稱(複數),用於顯示在/admin管理界面中
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章