admin 后台數據庫管理


admin 后台數據庫管理

django 提供了比較完善的后台管理數據庫的接口,可供開發過程中調用和測試使用

django 會搜集所有已注冊的模型類,為這些模型類提拱數據管理界面,供開發者使用

使用步驟:

  1.創建后台管理帳號:$ python3 manage.py createsuperuser

  根據提示完成注冊,參考如下:

$ python3 manage.py createsuperuser
Username (leave blank to use 'tarena'): tarena  # 此處輸入用戶名
Email address: weimz@tedu.cn  # 此處輸入郵箱
Password: # 此處輸入密碼(密碼要復雜些,否則會提示密碼太簡單)
Password (again): # 再次輸入重復密碼
Superuser created successfully.

   2.用注冊的帳號登陸后台管理界面

    后台管理的登錄地址:http://127.0.0.1:8000/admin

一、自定義后台管理數據表

若要自己定義的模型類也能在 /admin 后台管理界中顯示和管理,需要將自己的類注冊到后台管理界面

添加自己定義模型類的后台管理數據表的,需要用admin.site.register(自定義模型類) 方法進行注冊

配置步驟如下:

1.在應用app中的admin.py中導入注冊要管理的模型models類

  from . import models

2.調用 admin.site.register 方法進行注冊

  from django.contrib import admin

  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 類

模型管理器的使用方法:

1.在 <應用app>/admin.py 里定義模型管理器類

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

2.注冊管理器與模型類關聯

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中實現的高級管理功能

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

四、數據庫表管理

 1.修改模型類字段的顯示名字

  • 模型類各字段的第一個參數為 verbose_name,此字段顯示的名字會在后台數據庫管理頁面顯示
  • 通過 verbose_name 字段選項,修改顯示名稱

示例如下:

title = models.CharField(
    max_length = 30,
    verbose_name='顯示名稱'
)

2.通過Meta內嵌類 定義模型類的屬性及展現形式

  模型類可以通過定義內部類class Meta 來重新定義當前模型類和數據表的一些屬性信息

用法格式如下:

class Book(models.Model):
    title = CharField(....)
    class Meta:
        1. db_table = '數據表名'
            - 該模型所用的數據表的名稱。(設置完成后需要立馬更新同步數據庫)
        2. verbose_name = '單數名'
            - 給模型對象的一個易於理解的名稱(單數),用於顯示在/admin管理界面中
        3. verbose_name_plural = '復數名'
            - 該對象復數形式的名稱(復數),用於顯示在/admin管理界面中

示例:

class Meta:
    db_table = 'book_table'  
# 將原數據表名"bookstore_book" 換為 "book_table",請查看數據表 verbose_name = 'booooook' verbose_name_plural = 'booksssssss'
# 去127.0.0.1:8000/admin下看看哪兒變化了?

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM