Features: 1) Add type hinting to resolver methods in Order; 2) Improve resolve_payments_transactions to handle QuerySet access.

Fixes: 1) Add missing `QuerySet` import in `graphene/object_types.py`.

Extra: 1) Minor refactoring for clarity in resolver method definitions.
This commit is contained in:
Egor Pavlovich Gorbunov 2025-07-06 23:34:16 +03:00
parent ea236743ae
commit 07aadb5d83

View file

@ -1,5 +1,5 @@
from django.core.cache import cache from django.core.cache import cache
from django.db.models import Max, Min from django.db.models import Max, Min, QuerySet
from django.db.models.functions import Length from django.db.models.functions import Length
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from graphene import ( from graphene import (
@ -336,20 +336,22 @@ class OrderType(DjangoObjectType):
) )
description = _("orders") description = _("orders")
def resolve_total_price(self, _info): def resolve_total_price(self: Order, _info):
return self.total_price return self.total_price
def resolve_total_quantity(self, _info): def resolve_total_quantity(self: Order, _info):
return self.total_quantity return self.total_quantity
def resolve_notifications(self, _info): def resolve_notifications(self: Order, _info):
return camelize(self.notifications) return camelize(self.notifications)
def resolve_attributes(self, _info): def resolve_attributes(self: Order, _info):
return camelize(self.attributes) return camelize(self.attributes)
def resolve_payments_transactions(self, _info) -> None | Transaction: def resolve_payments_transactions(self: Order, _info) -> QuerySet[Transaction] | None:
return None or self.payments_transactions if self.payments_transactions:
return self.payments_transactions.all()
return None
class ProductImageType(DjangoObjectType): class ProductImageType(DjangoObjectType):