【发布时间】:2020-11-18 08:24:44
【问题描述】:
我正在使用graphene-django 来构建我的 API。我有一个名为 StoreType 的 DjangoObjectType,它代表模型商店。此模型有一个名为 opening_days 的 MultiSelectField,它指示商店在一周中的哪几天营业。为了创建新商店,我使用了这个突变:
class Weekdays(graphene.Enum):
MO = "Mo"
TU = "Tu"
WE = "We"
TH = "Th"
FR = "Fr"
SA = "Sa"
SU = "Su"
class CreateStore(graphene.Mutation):
store = graphene.Field(StoreType)
class Arguments:
opening_days = graphene.Argument(graphene.List(Weekdays))
def mutate(self, info, opening_days):
store = Store(opening_days=opening_days)
store.save()
return CreateStore(store=store)
突变效果很好。但是,当我尝试查询商店时,我收到错误"Expected a value of type \"StoreOpeningDays\" but received: Monday, Tuesday",,这确实很有意义,因为该字段将数据保存为单个字符串,其中的值用逗号分隔。问题是石墨烯需要graphene.List(Weekdays) 中指定的列表,这是无法检索的。
关于如何解决这个问题的任何想法?提前致谢!
【问题讨论】:
-
你能分享 Django 模型和
StoreType的代码吗?如果数据按预期存储在数据库中,您只需为StoreType上的opening_days字段创建一个自定义解析器即可返回正确的类型。 -
请分享商店模型
标签: python django graphql graphene-python