Я пытаюсь использовать графен для моделирования следующих данных: объект MessageFrequency
, который представляет количество сообщений, отправленных в определенный день для определенного чата, и объект MessageFrequencyRange
, который представляет количество сообщенийотправляется в день для диапазона дат, все для данного чата.
Я пытался создать пользовательские классы и смог получить объект MessageFrequency
с запросом, выполнив эту запись stackoverflow, но я не уверен, как получить вложенный пользовательский объектза работой.Ниже приведен мой текущий код.
class MessageFrequency(graphene.ObjectType):
chat_id = graphene.Int()
date = graphene.Date()
frequency = graphene.Int()
class MessageFrequencyRange(graphene.ObjectType):
chat_id = graphene.Int()
start_date = graphene.Date()
end_date = graphene.Date()
frequencies = graphene.NonNull(graphene.List(graphene.NonNull(MessageFrequency)))
def resolve_frequencies(self, info):
return [
# some method to instantiate a MessageFrequency object...
# Query.resolve_message_frequency ?
]
class Query(graphene.ObjectType):
message_frequency = graphene.Field(
MessageFrequency,
chat_id=graphene.Int(required=True),
date=graphene.Date(required=True),
)
message_frequency_range = graphene.Field(
MessageFrequencyRange,
chat_id=graphene.Int(required=True),
)
def resolve_message_frequency(self, info, chat_id, date):
# test data for now
return MessageFrequency(
chat_id=9000,
date=date,
frequency=1
)
def resolve_message_frequency_range(self, info):
# Should be creating a MessageFrequencyRange object, but not sure how to fill
# in the frequencies attribute which isn't a scalar
return None
Я не уверен, как мне следует разрешать объект MessageFrequencyRange
внутри Query
, потому что это сложнее, чем разрешение объекта MessageFrequency
(как это имеетнескалярные поля).Я также не уверен, как разрешить атрибут frequencies
для MessageFrequencyRange
, я думаю, что мне следует использовать ранее написанный распознаватель, но я не уверен, как именно его вызвать.
Буду признателен за любую помощь!