2013-03-11 23 views
3

我在一個項目上設置了django管理員。爲什麼admin.py從不加載?

我在每個應用程序中創建了admin.py文件(就像我以前的項目一樣)。但是admin.py模塊未被加載。我的模型沒有註冊,我無法通過pydevd.settrace()分解代碼。

如果我將我的管理代碼移動到models.py的末尾,一切都按預期工作,模型向管理員註冊,並且代碼運行(我可以通過pydevd.settrace()逐步完成)。

所以失敗 -

my_project_app 
    __init__.py 
    cart 
     __init__.py 
     models.py 
     admin.py 

但是,當我在我的代碼添加到models.py文件一切的結束優良運行 -

from django.contrib import admin 

class CartAdmin(admin.ModelAdmin): 
    pass 

admin.site.register(Cart, CartAdmin) 

很顯然,我將要配置管理員,所以我不想在一個模塊中的一切。如何獲得我的admin.py文件?而爲什麼他們停止工作(這是我第一次使用的Django 1.5 - 不知道這是有關)

回答

5

通常你叫你的urls.pyadmin.autodiscover()和它加載的一切:

# urls.py 
from django.conf.urls import patterns, include 
from django.contrib import admin 

admin.autodiscover() 

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

既然你在嘗試使用admin.site.urls之前必須這樣做,那是最好的地方。

+0

當然。我拿出來了。我試圖覆蓋AdminSite並使用AbstractBaseUser。我遇到了問題,所以我正在倒退,看看問題是什麼。我忘了把線放回去。謝謝帕維爾! – 2013-03-11 12:10:57

3

在你admin.py文件,你有,如果你已經包括

'django.contrib.admin', 
在INSTALLED_APPS中的設置列表

導入你的模型

from cart.models import Cart 

如果它仍然因此未工作,然後檢查文件中,然後網址文件包括

admin.autodiscover() 

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

運行manange.py syncdb

運行manage.py runserver命令

檢查127.0.0.1:8000/admin

它應該工作

+0

謝謝vibhor。帕維爾打敗你,但這一切看起來不錯,所以+1。 – 2013-03-11 13:35:09

+0

艾丹。解決你的問題? – vibhor 2013-03-12 06:03:02