加入收藏 | 设为首页 | 会员中心 | 我要投稿 鄂州站长网 (https://www.0711zz.com/)- 数据分析、网络、云渲染、应用安全、大数据!
当前位置: 首页 > 编程开发 > Python > 正文

Django管理员 – 如何获取模板中的所有注册模型?

发布时间:2020-10-19 13:25:45 所属栏目:Python 来源:互联网
导读:我正在编写一个自定义的管理员资料,需要在管理员中获得所有注册的模型.这可能吗?我需要它在管理员索引页面上进行一些自定义视图. 您可以访问Model- ModelAdmin的admin.site._registry dict: ./manage.py shellIn [1]: from urls import * # load adminIn [2

我正在编写一个自定义的管理员资料,需要在管理员中获得所有注册的模型.这可能吗?我需要它在管理员索引页面上进行一些自定义视图.

解决方法

您可以访问Model-> ModelAdmin的admin.site._registry dict:
>>> ./manage.py shell

In [1]: from urls import * # load admin

In [2]: from django.contrib import admin

In [3]: admin.site._registry
Out[3]: 
{django.contrib.auth.models.Group: <django.contrib.auth.admin.GroupAdmin at 0x22629d0>,django.contrib.auth.models.User: <django.contrib.auth.admin.UserAdmin at 0x2262a10>,django.contrib.sites.models.Site: <django.contrib.sites.admin.SiteAdmin at 0x2262c90>,testapp.models.Up: <django.contrib.admin.options.ModelAdmin at 0x2269c10>,nashvegas.models.Migration: <nashvegas.admin.MigrationAdmin at 0x2262ad0>}

这是管理员索引视图的作用:

@never_cache
def index(self,request,extra_context=None):
    """ 
    Displays the main admin index page,which lists all of the installed
    apps that have been registered in this site.
    """
    app_dict = {}
    user = request.user
    for model,model_admin in self._registry.items():
        # ...

请注意,以下划线为前缀的变量可能会在将来的django版本中发生更改.

(编辑:鄂州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读