外键的Django Graphene查询过滤

Django Graphene query filtering for foreign key

我有一个 django 模型

class Person(models.Model):
    name = models.CharField()
    address = models.CharField()

class Blog(models.Model):
    person = models.ForeignKey('Person', on_delete=models.CASCADE, blank=False, null=False)
    text = models.TextField()

如何编写允许通过外键进行查询过滤的石墨烯架构?

class Query(graphene.ObjectType):

    blog = graphene.Field(BlogType)
    blogs = graphene.List(BlogType, person=graphene.???, #Foreign Key call here
                              text=graphene.String())

    def resolve_blog(self, info, id):
        return Blog.objects.get(pk=id)

    def resolve_blogs(self, info, person = None, text = None, **kwargs)
       if person:
            filter = Q(person__icontains = person.name)  #Filter for foreign key
            return Blog.objects.filter(filter)

我认为您正在尝试访问特定人员的博客。如果是这样,


class Query(graphene.ObjectType):

    blog = graphene.Field(BlogType)
    blogs = graphene.List(BlogType, person=graphene.ID(),
                              text=graphene.String())

    def resolve_blog(self, info, id):
        return Blog.objects.get(pk=id)

    def resolve_blogs(self, info, person = None, text = None, **kwargs)
       if person:            
            return Blog.objects.filter(person__id=person)