所以我想使用 docs 中描述的 AdminSite 类自定义管理页面。

from django.contrib.admin import AdminSite
from .models import MyModel

class MyAdminSite(AdminSite):
    site_header = 'Monty Python administration'

admin_site = MyAdminSite(name='myadmin')

但是我不想使用 admin_site.register(MyModel) 我想使用像这样的寄存器装饰器
from django.contrib.admin import ModelAdmin

@admin_site.register(MyModel)
class MyModelAdmin(ModelAdmin):
    pass

但是,这只会引发错误 TypeError: 'NoneType' object is not callable 。现在是否有 Django 中 AdminSite 子类的注册装饰器 (1.9) 还是我遗漏了什么?

最佳答案

您可以像这样使用关键字参数 site:

@admin.register(MyModel, site=MyAdminSite )

from django.contrib import admin
...

@admin.register(MyModel, site=MyAdminSite)
class MyModelAdmin(ModelAdmin):
    pass

关于寄存器装饰器的文档:
https://docs.djangoproject.com/en/1.9/ref/contrib/admin/#the-register-decorator

关于Django:自定义管理站点类的管理注册装饰器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36985937/

10-12 20:20