Django 1.4 - 手动导入管理模型

时间:2012-07-25 08:36:51

标签: python django django-admin

my earlier question in regards extending Django's AdminSite相关,我已经成功地将AdminSite子类化,并且可以完美地登录。但是,我的管理站点中没有应用程序模型! admin.autodiscover()函数不再有效,而且我对Python没有足够的熟练程度来弄清楚我做错了什么!

长话短说,如果我不能使用AdminSite.autodiscover(),如何将我的verang Django应用程序中的所有模型加载到我的子类AdminSite实例中?

2 个答案:

答案 0 :(得分:1)

即使您已将AdminSite分类,也没有理由不使用django.contrib.admin.autodiscover。这是从admin中注册的所有Django应用程序导入settings.INSTALLED_APPS模块的实际工具,有效地将模型注册到您的管理站点实例。

如果您有project.admin.foo_site子类的project.admin.FooAdminSite实例,请回顾一下:

# project/urls.py
from django.conf.urls import url
from django.contrib import admin

from project.admin import foo_site


admin.autodiscover()

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

#project/app/admin.py
from project.admin import foo_site
from project.app.models import Bar


foo_site.register(Bar)

答案 1 :(得分:0)

您需要set up an admin.py and register your models。这是Django教程中的一个释义版本:

  

为此,请在app目录中创建一个名为admin.py的文件   编辑它看起来像这样:

from django.contrib import admin
from app.models import Model1, Model2, Model3

admin.site.register(Model1)
admin.site.register(Model2)
admin.site.register(Model3)