-
Notifications
You must be signed in to change notification settings - Fork 766
-
Hello team,
I have designed my GraphQL DTO using graphene django like this
NOTE: eventTags and eventData are relationship model, other are only fields
class EventObjectType(DjangoObjectType): class Meta: model = Event fields = [ "eventTime", "eventName", "eventSeverity", "eventPriority", "eventType", "eventLevel", "eventLogLevel", "eventAudience", "eventAudienceTeam", "eventFrequency", "eventSource", "eventTags", "eventData" ] class EventResponseObject(graphene.ObjectType): response = graphene.Field(ResponseObject) page = graphene.Field(PageObject) data = graphene.List(EventObjectType)
When I query like this
query GetEvents($filtering: EventFilteringInputObject) { getEvents(filtering: $filtering) { response { id status code message } page { number hasNextPage hasPreviousPage nextPageNumber previousPageNumber } data { eventTime } } _debug { sql { rawSql } } }
I though Graphene/ Graphene Django could be enough to select only field I have specified in query, However it queries all fields in database even of related models.
I have tried to improve it may be using graphene_django_optimizer.gql_optimizer package func but it does not
Here is how how I perform optimization
queryset = gql_optimizer.query(model.objects.filter(filters).only(lookup), info=info) paginated_data = Paginator(queryset, items_per_page) page_obj = paginated_data.page(page_number) data = [builder_function(getattr(obj, lookup)) for obj in page_obj] page = PageObject.get_page(paginated_data.page(page_number)) return ResponseObject.get_response(id="1"), page, data
Any one have ever done optimization in Graphql to assist.
Beta Was this translation helpful? Give feedback.
All reactions
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment