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()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With