微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Django-Graphene - 与同类型对象的关系

如何解决Django-Graphene - 与同类型对象的关系

我已经定义了一个数据库模型,其中一个任务对象与同一个任务对象有关系。

class Task(models.Model):
    id = models.AutoField(primary_key=True)
    status_id = models.ForeignKey(Status,null=True,on_delete=models.SET_NULL)
    parent_id = models.ForeignKey('self',on_delete=models.SET_NULL)
    name = models.CharField(max_length=128)
    description = models.CharField(max_length=256)
    entry = models.IntegerField()

在 Graphql API 中,我可以为自己获取任务对象。我想通过调用一次对对象类型任务的调用调用 graphql 查询来实现检索相同类型的整个对象树的可能性。可能吗?

class TaskType(graphene.ObjectType):
    id = graphene.NonNull(graphene.Int)
    parent_id = graphene.Field(graphene.Int)
    name = graphene.NonNull(graphene.String)
    description = graphene.NonNull(graphene.String)
    entry = graphene.NonNull(graphene.Int)
    parent = graphene.List(lambda: TaskType)

    @staticmethod
    def resolve_parent(task,_info):
        return Task.objects.filter(parent_id=task.id)

我知道我可以以 JSONString 类型返回这样的树,但我正在寻找不同的解决方案。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。