如何在graphenepython Djangobjecttyp中获取模型的当前实例

2024-09-29 19:35:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个graphene python djangobjecttype类,我想添加一个自定义类型,但是我不知道如何在resolver函数中获取当前模型实例。我正在跟踪this tutorial,但找不到任何参考资料。你知道吗

这是我的DjangoObjectTypeClass:

class ReservationComponentType(DjangoObjectType):
    component_str = graphene.String()

    class Meta:
        model = ReservationComponent

    def resolve_component_str(self, info):
        # How can I get the current ReservationComponent instance here?. I guess it is somewehere in 'info', 
        # but documentation says nothing about it

        current_reservation_component = info.get('reservation_component')
        component = current_reservation_component.get_component()

        return component.name

我的问题与Graphene resolver for an object that has no model不同,因为我的对象确实有一个模型。我不知道为什么它被标记为“可能复制”有如此明显的区别。我的问题确实是基于这个模型。你知道吗


Tags: 模型info类型getmodelitcurrentclass
1条回答
网友
1楼 · 发布于 2024-09-29 19:35:51

是的,它在info的某个地方,也就是这里:

type_model = info.parent_type.graphene_type._meta.model

但如果使用DjangoObjectType,则实例将传递给self。你可以走另一条路:

class ReservationComponentType(DjangoObjectType):
    component_str = graphene.String()

    class Meta:
        model = ReservationComponent

    def resolve_component_str(self, info):
        # self is already an instance of type's model (not sure if it is in all cases):
        component_class = self.__class__

        current_reservation_component = info.get('reservation_component')
        component = current_reservation_component.get_component()

        return component.name

相关问题 更多 >

    热门问题