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