2012-03-22 28 views

回答

14

您可以訪問admin.site._registry字典模型 - 的>的ModelAdmin:

>>> ./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版本中。

+0

您是否知道是否有某種方法可以獲取用戶在管理中的實際應用程序?如果它是dahsboard,它將不返回任何應用程序,但對於其他應用程序則返回所有標籤或對象。我想在我的管理全局菜單中將它用作模板標籤。 – tunarob 2012-03-22 14:03:18

+0

我不明白,你可以打開另一個問題,並提供更多的細節? – jpic 2012-03-22 14:41:33