I have a django model
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()
How do I write a graphene schema that allows query filtering by a foreign key?
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)
I think you are trying to access blogs for a specific person. If so,
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)