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

Django批量向admin注冊模型方法詳解

 更新時(shí)間:2023年06月21日 14:56:12   作者:alue  
這篇文章主要為大家介紹了Django批量向admin注冊模型方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

大量模型需要注冊到 admin 頁面

如果有大量模型需要注冊到 admin 頁面, 手工一個(gè)個(gè)復(fù)制粘貼,然后修改名稱, 還挺麻煩. 有沒有自動化途經(jīng)呢?

一個(gè)最直觀的做法如下:

from django.apps import apps  
models = apps.get_models()  
for model in models:  
    admin.site.register(model)

的確能夠完成目標(biāo), 但存在一個(gè)缺陷. 如果有些模型已經(jīng)被注冊過了, 那么程序?qū)伋霎惓? 因?yàn)槟P筒荒苤貜?fù)注冊.

所以, 可以做個(gè)異常處理, 如果已經(jīng)注冊, 那就 pass.

from django.apps import apps  
models = apps.get_models()  
for model in models:  
try:  
    admin.site.register(model)  
except admin.sites.AlreadyRegistered:  
    pass

這里要注意, 上述代碼必須放在所有 admin 注冊行為之后運(yùn)行.

如果, 我們想讓注冊后的 admin 列表頁自動顯示所有字段, 那該如何修改上述代碼呢?
我們可以利用 admin.register(model_or_iterable, admin_class=None) 方法的第二個(gè)參數(shù) admin_class , 來實(shí)現(xiàn)這一行為.

list_display 的動態(tài)獲取

通過構(gòu)造 mixin 類 ListAdminMixin, 實(shí)現(xiàn) list_display 的動態(tài)獲取:

from django.apps import apps  
from django.contrib import admin  
class ListAdminMixin(object):  
    def __init__(self, model, admin_site):  
        self.list_display = [field.name for field in 
        model._meta.fields]  
        super(ListAdminMixin, self).__init__(model, admin_site)  
models = apps.get_models()  
for model in models:  
    admin_class = type('AdminClass',
    (ListAdminMixin,admin.ModelAdmin), {})  
    try:  
        admin.site.register(model, admin_class)  
    except admin.sites.AlreadyRegistered:  
        pass

這樣就實(shí)現(xiàn)了預(yù)期的功能.

以上就是Django批量向admin注冊模型方法詳解的詳細(xì)內(nèi)容,更多關(guān)于Django批量向admin注冊模型的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python?Generator生成器函數(shù)基本概念及高級用途技巧示例

    Python?Generator生成器函數(shù)基本概念及高級用途技巧示例

    這篇文章主要為大家介紹了Python?Generator生成器函數(shù)基本概念及高級用途技巧示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Python+Mysql實(shí)現(xiàn)登錄注冊完整代碼示例

    Python+Mysql實(shí)現(xiàn)登錄注冊完整代碼示例

    在開發(fā)中用戶注冊和登錄是常見的功能需求,這篇文章主要給大家介紹了關(guān)于Python+Mysql實(shí)現(xiàn)登錄注冊的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • Python 利用OpenCV給照片換底色的示例代碼

    Python 利用OpenCV給照片換底色的示例代碼

    這篇文章主要介紹了Python 利用OpenCV給照片換底色,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 淺析Python中的縮進(jìn)錯(cuò)誤

    淺析Python中的縮進(jìn)錯(cuò)誤

    在編程中,我們經(jīng)常會遇到錯(cuò)誤,縮進(jìn)錯(cuò)誤是 Python 中最常見的錯(cuò)誤之一,它會使我們的代碼難以理解,并且難以調(diào)試,下面小編就來和大家簡單聊聊Python中的縮進(jìn)錯(cuò)誤吧
    2023-10-10
  • Python異常處理知識點(diǎn)總結(jié)

    Python異常處理知識點(diǎn)總結(jié)

    在本篇文章中小編給大家分享了關(guān)于Python異常處理的相關(guān)知識點(diǎn)以及對應(yīng)的實(shí)例內(nèi)容,需要的朋友們學(xué)習(xí)下。
    2019-02-02
  • python math模塊的基本使用教程

    python math模塊的基本使用教程

    這篇文章主要介紹了python math模塊的基本使用教程,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • 一文詳解如何在Python中從字符串中提取部分內(nèi)容

    一文詳解如何在Python中從字符串中提取部分內(nèi)容

    這篇文章主要介紹了如何在Python中從字符串中提取部分內(nèi)容的相關(guān)資料,包括使用正則表達(dá)式、Pyparsing庫、AST(抽象語法樹)、字符串操作和函數(shù)式編程,每種方法都有其適用場景和優(yōu)缺點(diǎn),需要的朋友可以參考下
    2025-04-04
  • 使用Python腳本對GiteePages進(jìn)行一鍵部署的使用說明

    使用Python腳本對GiteePages進(jìn)行一鍵部署的使用說明

    剛好之前有了解過python的自動化,就想著自動化腳本,百度一搜還真有類似的文章。今天就給大家分享下使用Python腳本對GiteePages進(jìn)行一鍵部署的使用說明,感興趣的朋友一起看看吧
    2021-05-05
  • LeetCode百錢買百雞python遞歸解法示例

    LeetCode百錢買百雞python遞歸解法示例

    這篇文章主要為大家介紹了LeetCode百錢買百雞題目python遞歸解法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • pandas表連接 索引上的合并方法

    pandas表連接 索引上的合并方法

    今天小編就為大家分享一篇pandas表連接 索引上的合并方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06

最新評論