0

我之前关于扩展 Django 的 AdminSite 的问题相关,我已经成功地将 AdminSite 子类化并且可以完美登录。但是,我的管理站点中没有应用程序模型!admin.autodiscover() 函数不再起作用,而且我对 Python 的熟练程度不足以找出我做错了什么!

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

4

2 回答 2

1

没有理由不使用django.contrib.admin.autodiscover,即使您将AdminSite. 这是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)
于 2012-07-25T09:19:50.590 回答
0

您需要设置一个 admin.py 并注册您的模型。这是 Django 教程中的释义版本:

为此,请在您的应用程序目录中创建一个名为 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)
于 2012-07-25T08:45:25.923 回答