Initial change: Allow prefetch and selection of related data on Page object, for EditView

pull/13003/head
Katherine Domingo 2025-03-31 19:01:18 +08:00
rodzic db3a695695
commit 2dce7f970f
2 zmienionych plików z 13 dodań i 0 usunięć

Wyświetl plik

@ -333,6 +333,15 @@ class EditView(WagtailAdminTemplateMixin, HookResponseMixin, View):
self.scheduled_revision = self.real_page_record.scheduled_revision
self.page_content_type = self.real_page_record.cached_content_type
self.page_class = self.real_page_record.specific_class
self.prefetch_related = self.page_class.prefetch_related
self.select_related = self.page_class.select_related
self.real_page_record = get_object_or_404(
self.page_class.objects.select_related(
*self.select_related,
).prefetch_related(
*self.prefetch_related,
),
)
if self.page_class is None:
raise PageClassNotFoundError(

Wyświetl plik

@ -479,6 +479,10 @@ class Page(AbstractPage, index.Indexed, ClusterableModel, metaclass=PageBase):
HTTPMethod.PUT,
]
# Allows prefetching of related objects for admin views
prefetch_related_objects = []
select_related_objects = []
@staticmethod
def route_for_request(request: HttpRequest, path: str) -> RouteResult | None:
"""