根据用户自定义feincms页面管理员

Hed*_*ide 6 python django django-admin feincms

我试图找到一种方法来过滤基于用户提供的页面对象的管理查询集,我考虑过(伪代码):

from feincms... Page

class MyPageAdmin(PageAdmin):
    def __init__(self, *args, **kwargs):
        'monkey business'
        super(MyPageAdmin, self).__init__(*args, **kwargs)

admin.site.unregister(Page)
admin.site.register(Page, MyPageAdmin)
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为feincms检查完全加载的django实例.一个详细的解决方案可能根本不是加载页面模块,而是覆盖页面模型对象或管理员,例如:

from feincms... PageAdmin

class MyPage(Page):
    objects = CustomManager()

admin.site.register(MyPage, PageAdmin)
Run Code Online (Sandbox Code Playgroud)

文档说明可以以类似的方式设置您自己的页面模块,但是对于简单的要求似乎有很多配置.

是否有更简单的方法来覆盖feincms模块的管理查询集或模型管理员?

Mat*_*olz 6

FeinCMS v1.7还允许您FEINCMS_USE_PAGE_ADMIN=False在Django设置中进行设置.

然后,PageAdmin像往常一样进行子类化,并自己向模型注册模型管理员.

你也应该开始导入PageAdminfeincms.module.page.modeladmins,如果你正在使用V1.7.