欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Django定制Admin頁面詳細(xì)實(shí)例(展示頁面和編輯頁面)

 更新時(shí)間:2023年06月25日 09:49:42   作者:頑固油漬  
django自帶的admin因?yàn)楣δ芎蜆邮奖容^簡(jiǎn)陋,常常需要再次定制,下面這篇文章主要給大家介紹了關(guān)于Django定制Admin頁面(展示頁面和編輯頁面)的相關(guān)資料,需要的朋友可以參考下

以上篇文章中注冊(cè)的Goods應(yīng)用為例

默認(rèn)的Admin系統(tǒng)中,Goods應(yīng)用的詳情頁

上圖中,并未顯示商品的具體信息(名稱等),統(tǒng)一名稱為 Goods Object,為方便項(xiàng)目操作和管理,可在文件 model.py 中添加如下代碼,用來顯示商品名稱和 id 信息:

def __str__(self):
    return '%s:%s' % (self.id, self.name)

效果如下(可通過點(diǎn)擊進(jìn)入商品詳情頁面):

如需定制此頁面的展示信息,可以在文件 admin.py 中使用以下關(guān)鍵字達(dá)到預(yù)期效果:

1. list_display選項(xiàng):用于控制頁面展示的字段,該選項(xiàng)的值為元組或列表類型,其中的元素可以是模型字段或自定義字段

2. list_display_links選項(xiàng):用于設(shè)置需在頁面中以鏈接形式展示的字段,可跳轉(zhuǎn)到詳情頁面

# 計(jì)算銷售額的函數(shù)
def sales_volume(g):
    total = g.price * g.sales
    return f'{g.name}銷售額為:{total}'
sales_volume.short_description = '商品銷售額' # 設(shè)置字段描述
 
# 裝飾器方法注冊(cè)應(yīng)用
@admin.register(Goods)
class GoodsAdmin(admin.ModelAdmin):
    # 列表界面的自定義
    list_display = ('id', 'name', 'price', 'stock', 'sales', 'create_time', 'update_time', sales_volume)
    list_display_links = ('id', 'name',)  # 設(shè)置字段鏈接

 顯示效果(藍(lán)色字段點(diǎn)擊可進(jìn)入商品詳情頁):

3. list_filter選項(xiàng):用于開啟列表頁過濾器,該選項(xiàng)可以接收模型中的字段作為過濾條件

@admin.register(Goods)
class GoodsAdmin(admin.ModelAdmin):
    # 列表界面的自定義
    list_display = ('id', 'name', 'price', 'stock', 'sales', 'create_time', 'update_time')
    # list_filter = ['name',]  # 過濾器

效果如下(即為通過特定條件篩選目標(biāo)):

4. list_per_page選項(xiàng):用于設(shè)置每頁顯示的數(shù)據(jù)量

5. list_editable選項(xiàng)用于設(shè)置可編輯的字段,字段若被指定為編輯字段,頁面上可直接編輯該字段。

@admin.register(Goods)
class GoodsAdmin(admin.ModelAdmin):
    # 列表界面的自定義
    list_display = ('id', 'name', 'price', 'stock', 'sales', 'create_time', 'update_time', sales_volume)
    list_display_links = ('id', 'name',)  # 設(shè)置字段鏈接
    list_filter = ['id', 'name']  # 過濾器
    list_per_page = 5     # 每頁展示5條記錄
    list_editable = ('price', 'stock')  # 設(shè)置商品價(jià)格和庫存為可編輯字段

顯示效果如下:

5. search_fields選項(xiàng):用于配置搜索字段

@admin.register(Goods)
class GoodsAdmin(admin.ModelAdmin):
    # 列表界面的自定義
    list_display = ('id', 'name', 'price', 'stock', 'sales', 'create_time', 'update_time')
    list_display_links = ('id', 'name',)  # 設(shè)置字段鏈接
    list_filter = ['id', 'name']  # 過濾器
    list_per_page = 5     # 每頁展示5條記錄
    list_editable = ('price', 'stock')  # 設(shè)置商品價(jià)格和庫存為可編輯字段
    search_fields = ('name',)   # 表示以 name 作為搜索字段

顯示效果:

7. actions_on_top選項(xiàng):用于設(shè)置是否在頂部顯示動(dòng)作下拉框,默認(rèn)為True,表示在頂部顯示。

8. actions_on_bottom選項(xiàng):用于設(shè)置管理員動(dòng)作是否在底部顯示,默認(rèn)為False,表示不在底部顯 示,當(dāng)設(shè)置為True表示在底部顯示。

@admin.register(Goods)
class GoodsAdmin(admin.ModelAdmin):
    # 列表界面的自定義
    list_display = ('id', 'name', 'price', 'stock', 'sales', 'create_time', 'update_time', sales_volume)
    # actions_on_top選項(xiàng)用于設(shè)置是否在頂部顯示動(dòng)作下拉框
    # actions_on_bottom選項(xiàng)用于設(shè)置管理員動(dòng)作是否在底部顯示
    actions_on_top = False
    actions_on_bottom = True

顯示效果:

定制商品詳情頁面(即編輯頁面),依然是在admin.py文件中,有如下選項(xiàng):

1. fields選項(xiàng):用于控制編輯頁要顯示的字段,它的值是元組類

   fields選項(xiàng)支持以二維元組形式設(shè)置字段分欄顯示,在fileds中一個(gè)元組表示一欄數(shù)據(jù)

@admin.register(Goods)
class GoodsAdmin(admin.ModelAdmin): 
    fields = ('name', 'price', 'stock') 

顯示效果:

@admin.register(Goods)
class GoodsAdmin(admin.ModelAdmin):
    fields = (('name', 'price'), ('stock', 'sales'))      # 分欄顯示

效果如下: 

2. fieldsets選項(xiàng):用于對(duì)可編輯字段進(jìn)行分組,該選項(xiàng)不可與fields選項(xiàng)同時(shí)使用

@admin.register(Goods)
class GoodsAdmin(admin.ModelAdmin):
    fieldsets = (
        ('商品基本信息', {'fields': ['name', 'stock', 'sales']}),
        ('商品價(jià)格信息', {'fields': ['price']})
    )

效果如下:

3. readonly_fields選項(xiàng):用于設(shè)置只讀字段

@admin.register(Goods)
class GoodsAdmin(admin.ModelAdmin):
    fieldsets = (
        ('商品基本信息', {'fields': ['name', 'stock', 'sales']}),
        ('商品價(jià)格信息', {'fields': ['price']})
    )
    readonly_fields = ('name',)

效果如下:

4. save_on_top選項(xiàng):用于社會(huì)是否在編輯頁上方顯示保存、刪除等按鈕,默認(rèn)為False 

@admin.register(Goods)
class GoodsAdmin(admin.ModelAdmin):
    fieldsets = (
        ('商品基本信息', {'fields': ['name', 'stock', 'sales']}),
        ('商品價(jià)格信息', {'fields': ['price']})
    )
    readonly_fields = ('name',)
    save_on_top = True

效果如下:

總結(jié) 

到此這篇關(guān)于Django定制Admin頁面的文章就介紹到這了,更多相關(guān)Django定制Admin頁面內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 代碼分析Python地圖坐標(biāo)轉(zhuǎn)換

    代碼分析Python地圖坐標(biāo)轉(zhuǎn)換

    這篇文章主要介紹了Python地圖坐標(biāo)轉(zhuǎn)換的相關(guān)知識(shí)點(diǎn)以及分享了相關(guān)的代碼實(shí)例,對(duì)此有興趣的朋友學(xué)習(xí)下。
    2018-02-02
  • Python代碼縮進(jìn)和測(cè)試模塊示例詳解

    Python代碼縮進(jìn)和測(cè)試模塊示例詳解

    這篇文章主要給大家介紹了關(guān)于Python代碼縮進(jìn)和測(cè)試模塊的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • python機(jī)器學(xué)習(xí)基礎(chǔ)特征工程算法詳解

    python機(jī)器學(xué)習(xí)基礎(chǔ)特征工程算法詳解

    這篇文章主要為大家介紹了python機(jī)器學(xué)習(xí)基礎(chǔ)特征工程的算法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2021-11-11
  • python 無監(jiān)督生成模型的示例

    python 無監(jiān)督生成模型的示例

    無監(jiān)督生成模型在機(jī)器學(xué)習(xí)中扮演著重要角色,特別是當(dāng)我們?cè)跊]有標(biāo)簽數(shù)據(jù)的情況下想要生成新的樣本或理解數(shù)據(jù)的內(nèi)在結(jié)構(gòu)時(shí),這篇文章主要介紹了python 無監(jiān)督生成模型的示例,需要的朋友可以參考下
    2024-07-07
  • Python matplotlib學(xué)習(xí)筆記之坐標(biāo)軸范圍

    Python matplotlib學(xué)習(xí)筆記之坐標(biāo)軸范圍

    這篇文章主要介紹了Python matplotlib學(xué)習(xí)筆記之坐標(biāo)軸范圍,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Python 文件數(shù)據(jù)讀寫的具體實(shí)現(xiàn)

    Python 文件數(shù)據(jù)讀寫的具體實(shí)現(xiàn)

    這篇文章主要介紹了Python 文件數(shù)據(jù)讀寫的具體實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 在Python中使用pngquant壓縮png圖片的教程

    在Python中使用pngquant壓縮png圖片的教程

    這篇文章主要介紹了在Python中使用pngquant壓縮png圖片的教程,本文中列舉了一個(gè)壓縮PNG圖片的實(shí)例,需要的朋友可以參考下
    2015-04-04
  • 兩種方法檢查Python中的變量是否為字符串

    兩種方法檢查Python中的變量是否為字符串

    在 Python 中,每個(gè)變量都有一個(gè)數(shù)據(jù)類型, 數(shù)據(jù)類型表示變量?jī)?nèi)部存儲(chǔ)的數(shù)據(jù)類型,本文通過示例介紹兩種不同的方法來檢查 Python 中的變量是否為字符串,感興趣的朋友一起看看吧
    2023-11-11
  • python中如何使用正則表達(dá)式的非貪婪模式示例

    python中如何使用正則表達(dá)式的非貪婪模式示例

    貪婪與非貪婪模式影響的是被量詞修飾的子表達(dá)式的匹配行為,下面這篇文章主要給大家介紹了關(guān)于python中如何使用正則表達(dá)式的非貪婪模式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-10-10
  • 解決Python中由于logging模塊誤用導(dǎo)致的內(nèi)存泄露

    解決Python中由于logging模塊誤用導(dǎo)致的內(nèi)存泄露

    這篇文章主要介紹了解決Python中由于logging模塊誤用導(dǎo)致的內(nèi)存泄露,針對(duì)由于過多的UDP連接所產(chǎn)生的問題,需要的朋友可以參考下
    2015-04-04

最新評(píng)論