Я хотел бы получить страницы предков текущей страницы в моей настраиваемой форме администратора :
# models.py
class TopicPage(Page):
def get_topic_path(self):
return (
self
.get_ancestors(inclusive=True)
.filter(depth__gt=3)
.values_list('title', flat=True)
)
base_form_class = TopicPageForm
# forms.py
class TopicPageForm(WagtailAdminPageForm):
def save(self, commit=True):
page = super().save(commit=False)
page.get_topic_path()
if commit:
page.save()
return page
Но с новыми TopicPage
экземплярами get_ancestors
не возвращают ничего, пока страница не будет сохранена:
- Добавить новый
TopicPage
объект
- Опубликовать эту страницу:
get_ancestors
возвращает пустой набор запросов
- Опубликуйте эту страницу еще раз:
get_ancestors
возвращает ожидаемый набор запросов
Как получить страницы-предки текущей страницы в методе WagtailAdminPageForm
save (), даже для новых (несохраненных) страниц?