如何自定义片段表单?

问题描述 投票:0回答:1
wagtail 文档的这一部分

展示了如何通过子类化 Page 来自定义

WagtailAdminPageForm
模型的形式,并将子类作为
base_form_class
传递给
Page
模型。
它还说:

片段的自定义表单必须是 WagtailAdminModelForm 的子类,页面的自定义表单必须是 WagtailAdminPageForm 的子类。

但是,当我使用片段尝试相同的操作时,出现以下错误:

ModelForm has no model class specified.

我的代码:

class ScheduleAdminForm(WagtailAdminModelForm): def __init__(self, *args, **kwargs): print("Constructor of ScheduleAdminForm") super().__init__(*args, **kwargs) class Schedule(ClusterableModel): name = models.CharField(max_length=32) base_form_class = ScheduleAdminForm

我还尝试将模型添加到 
Meta

ScheduleAdminForm
类中。但是,我有一个循环使用,我不能像模型字段那样在
Meta.model
的引号中使用模型名称。
    

wagtail wagtail-snippet
1个回答
0
投票
base_form_class

属性:

class Schedule(ClusterableModel):
    name = models.CharField(max_length=32)


class ScheduleAdminForm(WagtailAdminModelForm):
    def __init__(self, *args, **kwargs):
        print("Constructor of ScheduleAdminForm")
        super().__init__(*args, **kwargs)

    class Meta:
        model = Schedule
        fields = ["name"]


Schedule.base_form_class = ScheduleAdminForm

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