以编程方式删除Wagtail ListBlock项

时间:2018-09-26 12:35:53

标签: python django django-models signals wagtail

我有一个抽象类,该类为{StreamField定义了Page

class DownloadGroupItem(models.Model):

    class Meta:
        abstract = True

    downloads = StreamField([
        ('items', ListBlock(
            StructBlock(
                [
                    ('title', CharBlock()),
                    ('description', TextBlock()),
                    ('file', DocumentChooserBlock()),
                ],
                template='downloads/blocks/item.html',
                form_classname='downloads__itemlist struct-block'
            ),
            label='Add download'
        ))
    ])

如果通过file保存的DocumentChooserBlock从页面的外部被删除,这将使ListBlock项目无效,无法在模板中输出。如果发生这种情况,当前的行为是将StructBlock的值保留为空(尽管是必需的)。{p>

我可以通过为Wagtail文档模型添加接收器并侦听file来减轻这种情况,但是如何以编程方式删除受影响的Wagtail ListBlock项目?

0 个答案:

没有答案