dnscms: prefetch images and related objects that GraphQL listings resolve per item
This commit is contained in:
6 files changed
+40
-7
No files matched your search
+17
-3
@@ -164,10 +164,16 @@ class EventOrganizerLink(Orderable):
|
||||
]
|
||||
|
||||
|
||||
class EventOrganizerManager(WPAwareManager):
|
||||
def get_queryset(self):
|
||||
# GraphQL lists load these through here; saves a query per item
|
||||
return super().get_queryset().prefetch_related("association")
|
||||
|
||||
|
||||
# registered as a snippet via EventOrganizerSnippetViewSet in wagtail_hooks.py
|
||||
@register_query_field("eventOrganizer", "eventOrganizers")
|
||||
class EventOrganizer(index.Indexed, ClusterableModel):
|
||||
objects = WPAwareManager()
|
||||
objects = EventOrganizerManager()
|
||||
|
||||
name = models.CharField(
|
||||
max_length=100,
|
||||
@@ -250,7 +256,9 @@ class EventPageManager(
|
||||
DeferWPFieldsManagerMixin,
|
||||
PageManager.from_queryset(EventPageQuerySet),
|
||||
):
|
||||
pass
|
||||
def get_queryset(self):
|
||||
# GraphQL lists load these through here; saves a query per item
|
||||
return super().get_queryset().prefetch_related("featured_image")
|
||||
|
||||
|
||||
class EventPage(HeadlessMixin, WPImportedPageMixin, Page):
|
||||
@@ -450,8 +458,14 @@ class EventPage(HeadlessMixin, WPImportedPageMixin, Page):
|
||||
self.price_member = ""
|
||||
|
||||
|
||||
class EventOccurrenceManager(WPAwareManager):
|
||||
def get_queryset(self):
|
||||
# GraphQL lists load these through here; saves a query per item
|
||||
return super().get_queryset().prefetch_related("venue")
|
||||
|
||||
|
||||
class EventOccurrence(Orderable):
|
||||
objects = WPAwareManager()
|
||||
objects = EventOccurrenceManager()
|
||||
|
||||
event = ParentalKey(EventPage, on_delete=models.CASCADE, related_name="occurrences")
|
||||
start = models.DateTimeField()
|
||||
|
||||
Reference in new issue
Block a user