【发布时间】:2014-06-30 10:49:08
【问题描述】:
我已经用我自己的覆盖了标准的 AdminSite:
project/admin/base.py:
from django.contrib import admin
class MyAdmin(admin.AdminSite):
...
my_admin = MyAdmin()
并用它注册了一些应用程序的模型: 事实/admin.py:
from django.contrib import admin
from project.admin.base import my_admin
from models import Fact
class FactAdmin(admin.ModelAdmin):
fields = ('section', 'description')
my_admin.register(Fact, FactAdmin)
如何让这个模型显示在索引页面上?我不能使用此处所述的自动发现:How to use custom AdminSite class? 该问题中建议的解决方法对我也不起作用,我想让它变得更干净。
文档仅声明
在使用您自己的 AdminSite 实例时确实不需要使用自动发现,因为您可能会在 myproject.admin 模块中导入所有应用程序 admin.py 模块。
我不会在 project.admin 模块中导入每个应用程序模块。 那么有没有办法告诉自定义 AdminSite 注册的模型并将其显示在索引上?
编辑:我已经挂钩了 URL,我看到的是 my_admin,而不是 admin。使用标准管理员,一切正常。下面是project/urls.py的代码:
from django.conf.urls import patterns, include, url
from admin.base import my_admin
urlpatterns = patterns('',
...
url(r'^admin/', include(my_admin.urls, app_name='admin')),
)
【问题讨论】:
-
目前显示什么?您是否也更改了您的 url conf (docs.djangoproject.com/en/1.6/ref/contrib/admin/…)?
-
是的,我已经挂钩了 URL,我在索引页面上看到了“您无权编辑任何内容”的管理页面。
-
您确定您的网址指向
my_admin而不是admin? -
是的。我进行了显示代码的编辑。
-
您确定您的
app_name只是admin吗?不应该是my_admin吗?