小编sma*_*mal的帖子

Wagtail - 如何将额外的表单字段(不是来自页面模型)添加到管理页面编辑表单并获得 wagtail 渲染

这就是我尝试过的。它可以工作,但额外的字段 text1 被渲染为一个普通的输入字段,没有标签,也没有很酷的 wagtail 渲染。我如何向表单添加额外的字段并获得很酷的 wagtail 渲染?

以下是WagtailAdminPageForm 文档的链接:

class Review(models.Model):

    page = models.OneToOneField(
        'wagtailcore.Page',
        verbose_name=('page'),
        related_name='review',
        on_delete=models.CASCADE)
    text1 = models.CharField(null=True, blank=True, max_length=50)


class RandomPageForm(WagtailAdminPageForm):
    """ Custom form for RandomPage """

    text1 = forms.CharField() # <-- extra field here!

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

        if self.instance.id:
            review, created = Review.objects.get_or_create(page_id=self.instance.id)
            print "set form.text1 to model.text1"
            self.fields['text1'].initial = review.text1

        # !!! Below has no effect
        self.instance.content_panels = Page.content_panels + [
            FieldPanel('body'),
            FieldPanel('text1'),
        ] …
Run Code Online (Sandbox Code Playgroud)

django wagtail

5
推荐指数
1
解决办法
1230
查看次数

标签 统计

django ×1

wagtail ×1