【发布时间】:2023-03-03 20:05:01
【问题描述】:
在创建新页面时,我需要根据父页面的值更改某些字段默认值。在编辑现有页面时,这不是问题,但是在创建新页面时,我需要为字段设置默认值。我尝试覆盖管理表单,在 WagtailAdminPageForm 的 init 上,parent_page 参数为空。如果我尝试在页面子类的 init 方法表单上执行此操作,则没有带有父信息的 arg 或 kwargs。
有没有办法获取新页面将成为父页面的页面?
这是我在页面构造函数上尝试的
class CMSPage(Page):
.
.
.
def __init__(self, *args, **kwargs):
super(BaseContentMixin, self).__init__(*args, **kwargs)
if hasattr(self.get_parent().specific, 'published_site') and self.get_parent().specific.published_site == 'extranet':
self.published_site = 'extranet'
这适用于编辑页面,对于新页面,我知道 NoneType 对象没有特定的属性。
Django 版本是 1.10,Python 版本是 3.6,Wagtail 版本是 1.9
【问题讨论】: