【发布时间】:2019-06-13 01:00:18
【问题描述】:
我正在尝试使用 Graphene 对以下数据进行建模:MessageFrequency 对象,表示在给定日期为特定聊天发送的消息数,MessageFrequencyRange 对象表示消息数每天发送的日期范围,全部用于给定的聊天。
我已经尝试创建自定义类,并且能够通过关注this stackoverflow 帖子获得可查询的MessageFrequency 对象,但我对如何让嵌套的自定义对象工作感到困惑。以下是我当前的代码。
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
我不确定我应该如何解析Query 中的MessageFrequencyRange 对象,因为它比解析MessageFrequency 对象更复杂(因为它具有非标量字段)。我也不确定如何解析MessageFrequencyRange 的frequencies 属性,我想我应该使用之前编写的解析器,但我不确定如何调用它。
任何帮助将不胜感激!
【问题讨论】:
标签: python graphql graphene-python