2012-03-22 8 views

Trả lời

14

Bạn có thể truy cập vào admin.site._registry dict của Model-> 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>} 

Đây là những gì các quan điểm chỉ số quản trị thực hiện:

@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(): 
     # ... 

Lưu ý rằng các biến bắt đầu bằng một dấu gạch dưới là có khả năng áp dụng những thay đổi trong các phiên bản tương lai của django.

+0

Bạn có biết nếu có một số phương pháp để có được ứng dụng thực tế mà người dùng đang ở trong quản trị viên không? Nếu nó là dahsboard nó sẽ không trả về ứng dụng nào, nhưng đối với những người khác, nó trả về tất cả nhãn hoặc đối tượng. Tôi muốn sử dụng nó như templatetag trong menu quản trị toàn cầu của tôi. – tunarob

+0

Tôi không hiểu, bạn có thể mở một câu hỏi khác và cung cấp thêm chi tiết không? – jpic