Django自定义AdminSite和ModelAdmin

时间:2014-06-30 10:49:09

标签: python django

我已经用我自己的标准AdminSite覆盖了标准的AdminSite:

项目/管理/ 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模块中导入每个app模块。 那么有没有办法告诉自定义AdminSite注册模型并在索引上显示它?

修改:我已经上网了,我看到了my_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')),
)

1 个答案:

答案 0 :(得分:1)

我认为你需要这样做:

import {provideParent} from '../common/providers/parent.provider';
...
@Component({
    providers:  [ provideParent(FooComponent) ]
})
...