Django models 是否可能有一个on_delete=PROTECT on PageChooserBlock?

Django models 是否可能有一个on_delete=PROTECT on PageChooserBlock?,django-models,wagtail,wagtail-streamfield,Django Models,Wagtail,Wagtail Streamfield,假设我有一个很棒的摇尾项目。 在这个项目中,我希望有一个页面,我可以添加无限的网页作为链接,代码如下所示: pages = StreamField([ ('link_page', blocks.PageChooserBlock(help_text='Link page')), ]) {% for block in page.pages %} <a href='{% pageurl block.value %}'>{{ block.value.specific.tit

假设我有一个很棒的摇尾项目。 在这个项目中,我希望有一个页面,我可以添加无限的网页作为链接,代码如下所示:

pages = StreamField([
    ('link_page', blocks.PageChooserBlock(help_text='Link page')),
])
{% for block in page.pages %}
    <a href='{% pageurl block.value %}'>{{ block.value.specific.title }}</a>
{% endfor %}
正如你所看到的,我有一个带有PageChooserBlock的StreamField,我可以添加它

我的模板如下所示:

pages = StreamField([
    ('link_page', blocks.PageChooserBlock(help_text='Link page')),
])
{% for block in page.pages %}
    <a href='{% pageurl block.value %}'>{{ block.value.specific.title }}</a>
{% endfor %}
如果有人现在试图删除该页面,他们将得到一个违规错误

e、 g.在外键上完美工作:

page = models.ForeignKey(
    'wagtailcore.Page',
    null=True,
    blank=True,
    on_delete=models.PROTECT,
    related_name='',
    help_text= 'Page',
)

这在当前版本的Wagtail中是不可能的-StreamField数据存储为JSON字符串,这使得很难识别在该数据中引用页面ID的位置,当然也不能在数据库级别强制执行

但是,目前正在处理一个pull请求,该请求将识别这些情况,并在页面被删除时发出警告: