I am trying to change my rest
end points to graphql
and I had a library called TaggableManager
as one of the model fields
. Anyone know how this can work with graphql?
Thanks in advance
I am trying to change my rest
end points to graphql
and I had a library called TaggableManager
as one of the model fields
. Anyone know how this can work with graphql?
Thanks in advance
You have to explicitly tell graphene how to convert the TaggableManger
field to be used in Queries. Register @convert_django_field
from graphene_django.converter
before using your model with the TaggableManger
field either in Queries
or Mutations
.
Example:
from graphene_django.converter import convert_django_field
from taggit.managers import TaggableManager
# convert TaggableManager to string representation
@convert_django_field.register(TaggableManager)
def convert_field_to_string(field, registry=None):
return String(description=field.help_text, required=not field.null)
I made one version of the Deepak Sood answer what works for me
from graphene import String, List
from taggit.managers import TaggableManager
from graphene_django.converter import convert_django_field
@convert_django_field.register(TaggableManager)
def convert_field_to_string(field, registry=None):
return List(String, source='get_tags')
And in the tagger model, i create a property names get_tags:
.
.
.
tags = TaggableManager()
@property
def get_tags(self):
return self.tags.all()
get_tags
property ``` return graphene.List( graphene.String, description=field.help_text, required=not field.null, resolver=lambda obj, info: obj.tags.all() ) ``` –
Tumular © 2022 - 2024 — McMap. All rights reserved.