如何在Wagtail管理员中修改页面模型视图?

问题描述 投票:-1回答:1

背景:我想在管理页面视图期间使用一些与管理请求相关的信息(通常是一些预填充)来增强页面实例。基本上,我需要一些功能,例如“ get_queryset”,但不需要列表视图,只需要编辑视图。

在与类似问题有关的我的较早问题中:Wagtail - how to preopulate fields in admin form?我得到了使用名为的说明,]

CreatePageView

但是,我无法导入它。此外,如果我进行搜索,我什至在Google上都找不到任何提及:

Wagtail + CreatePageView

我找到的最接近的东西是https://docs.wagtail.io/en/v2.1.1/reference/contrib/modeladmin/create_edit_delete_views.html,但该页面还指出:

注意:modeladmin仅提供“创建”,“编辑”和“删除”非页面类型模型(即未扩展的模型)的功能wagtailcore.models.Page)。如果您的模型是“页面类型”模型,自定义以下任何内容均无效

我很困惑。如果我需要自定义页面模型扩展的管理员视图怎么办?

我研究了Model.admin和Page的w源代码,但没有找到任何方法。有什么想法吗?

相关代码简化:

wa钩:

class ItemAdmin(ModelAdmin):

    pass

    # some function override here maybe?

型号:

class ItemPage(Page):

    pass

    # override for a function that gives data to the admin view maybe here?

编辑

如注释中所建议,可以在创建过程中修改管理页面表单:

from wagtail.admin.forms import WagtailAdminPageForm

class ItemPageForm(WagtailAdminPageForm):

    def __init__(self, data=None, files=None, parent_page=None, *args, **kwargs):
        super().__init__(data, files, *args, **kwargs)


class ItemPage(Page):

    base_form_class = ItemPageForm

但是,似乎无法在WagtailAdminPageForm构造函数中获取“请求”。

背景:我想在管理页面视图期间使用一些与管理请求相关的信息(通常是一些预填充)来增强页面实例。基本上我需要一些函数,例如“ ...

python django wagtail
1个回答
0
投票

这个问题有点模棱两可,因此不清楚您到底需要什么。

© www.soinside.com 2019 - 2024. All rights reserved.