我正在尝试找到一种方法,可以根据所提供的用户(我认为的是,伪代码)为页面对象过滤管理查询集:

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)

这是行不通的,因为feincms会检查是否已完全加载django实例。一个详细的解决方案可能是根本不加载页面模块,并覆盖页面模型对象或admin,例如:
from feincms... PageAdmin

class MyPage(Page):
    objects = CustomManager()

admin.site.register(MyPage, PageAdmin)

该文档指出可以用类似的方式对setup your own page module进行操作,但是对于一个简单的要求,似乎有很多配置。

有没有更简单的方法来覆盖feincms模块的admin查询集或模型admin?

最佳答案

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

然后,只需像往常一样子类化PageAdmin,然后自己向模型注册模型管理员。

如果您使用的是v1.7,则还应该开始从PageAdmin导入feincms.module.page.modeladmins

10-08 03:58