Python 如何使用django_graphene解析django模型的自定义字段?
看看graphene_django,我看到他们有一堆解析程序,将django模型字段映射到graphene类型 我有一个子类的我也希望被拿起 : 我知道我可以为一个查询编写一个单独的字段和解析器对,但我更希望它作为该模型模式的一部分可用 我意识到我能做的是:Python 如何使用django_graphene解析django模型的自定义字段?,python,django,graphql,graphene-python,Python,Django,Graphql,Graphene Python,看看graphene_django,我看到他们有一堆解析程序,将django模型字段映射到graphene类型 我有一个子类的我也希望被拿起 : 我知道我可以为一个查询编写一个单独的字段和解析器对,但我更希望它作为该模型模式的一部分可用 我意识到我能做的是: class RecipeQuery: custom_field = graphene.JSONString(id=graphene.ID(required=True)) def resolve_custom_field(s
class RecipeQuery:
custom_field = graphene.JSONString(id=graphene.ID(required=True))
def resolve_custom_field(self, info, **kwargs):
id = kwargs.get('id')
instance = get_item_by_id(id)
return instance.custom_field.to_json()
但是--这意味着要进行一次单独的往返,获取id,然后获取该项的自定义_字段,对吗
是否有一种方法可以将其视为RecipeType模式的一部分?好的,我可以使用以下方法使其工作:
# schema
class RecipeType(DjangoObjectType):
class Meta:
model = Recipe
custom_field = graphene.JSONString(resolver=lambda my_obj, resolve_obj: my_obj.custom_field.to_json())
(custom_字段
有一个to_json
方法)
我在没有深入了解石墨烯类型和django模型场类型之间的映射中发生了什么的情况下理解了它
基于此:
相同的函数名,但参数化方式不同
# schema
class RecipeType(DjangoObjectType):
class Meta:
model = Recipe
custom_field = graphene.JSONString(resolver=lambda my_obj, resolve_obj: my_obj.custom_field.to_json())