2010-09-09 75 views
5

我的自定義AdminSite有問題 - 我的應用程序在管理員索引處不可見,如果我輸入適當的URL來查看其模型,則不可訪問。我的問題與此非常相似:http://groups.google.com/group/django-users/browse_thread/thread/881feb7eef80853a但它是一種相反的問題 - 捆綁的模型是可見的,但我的習慣不是。使用自定義AdminSite時我的應用程序不可見

我的項目名爲魔術,它有應用程序。命名nullt

魔法/ admin.py:

from django.contrib.admin.sites import AdminSite 
from django.contrib.auth.models import User, Group 
from django.contrib.auth.admin import UserAdmin, GroupAdmin 

class MagicAdmin(AdminSite): 
    pass 

admin_site = MagicAdmin() 

admin_site.register(Group, GroupAdmin) 
admin_site.register(User, UserAdmin) 

魔法/ nullt/admin.py

from magic.admin import admin_site 
... 
admin_site.register(Host, HostAdmin) 
admin_site.register(Client, ClientAdmin) 
... 

魔法/ urls.py

from django.conf.urls.defaults import * #@UnusedWildImport 
from magic.admin import admin_site 

urlpatterns = patterns('', 
    (r'^admin/', include(admin_site.urls)), 
) 

附:我使用Django 1.2.2與easy_install的安裝和Python 2.6.5從Ubuntu的10.04 x86_64的

回答

2

默認情況下,以下兩行被註釋掉在新項目的urls.py:

from django.contrib import admin 
admin.autodiscover() 

django/contrib/admin/__init__.py

def autodiscover(): 
    """ 
    Auto-discover INSTALLED_APPS admin.py modules and fail silently when 
    not present. This forces an import on them to register any admin bits they 
    may want. 
    """ 

即使您有自定義管理員,此調用可能也是必需的。

+0

我在Django 1.2文檔(http://docs.djangoproject.com/en/1.2/ref/contrib/admin/)中讀到,自從您使用自己的AdminSite實例時,確實不需要使用自動發現可能會導入myproject.admin模塊中的所有應用程序admin.py模塊 但實際上autodiscover()做到了這一點,我在自定義管理中看到了自定義模型:) 謝謝。 – 2010-11-15 10:52:56

相關問題