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

我正在编写一个自定义的管理员资料,需要在管理员中获得所有注册的模型.这可能吗?我需要它在管理员索引页面上进行一些自定义视图. 您可以访问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版本中发生更改.

作者: dawei

【声明】:滨州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部