Get parent page on creating new Wagtail Page

Viewed 4207

I need to change some field default value given a value from the parent page when creating a new page. When editing an existing page, this is not a problem, but when creating a new page, I need to set a default value for a field. I have tried overriding the admin form, on init for WagtailAdminPageForm, the parent_page parameter is empty. And if I try to do it on the init method form Page subclass, there is no arg or kwargs with the parent information.

is there a way to get the page for which the new page will be the parent?

This is what I tried on Page constructor

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'

This works editing a page, for new page, I get that NoneType objects has no attribute specific.

Django version is 1.10, Python version is 3.6, Wagtail version is 1.9

2 Answers
Related