与my earlier question in regards extending Django's AdminSite相关,我已经成功地将AdminSite子类化,并且可以完美地登录。但是,我的管理站点中没有应用程序模型! admin.autodiscover()函数不再有效,而且我对Python没有足够的熟练程度来弄清楚我做错了什么!
长话短说,如果我不能使用AdminSite.autodiscover(),如何将我的verang Django应用程序中的所有模型加载到我的子类AdminSite实例中?
答案 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)