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请求,该请求将识别这些情况,并在页面被删除时发出警告: