【发布时间】:2018-04-20 08:29:31
【问题描述】:
我正在尝试将我的rest 端点更改为graphql,并且我有一个名为TaggableManager 的库作为model fields 之一。有人知道这如何与 graphql 一起工作吗?
提前致谢
【问题讨论】:
标签: python django tags graphql django-taggit
我正在尝试将我的rest 端点更改为graphql,并且我有一个名为TaggableManager 的库作为model fields 之一。有人知道这如何与 graphql 一起工作吗?
提前致谢
【问题讨论】:
标签: python django tags graphql django-taggit
我制作了一个版本的Deepak Sood 回答什么对我有用
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')
在标注器模型中,我创建了一个属性名称 get_tags:
.
.
.
tags = TaggableManager()
@property
def get_tags(self):
return self.tags.all()
【讨论】:
您必须明确告诉石墨烯如何转换TaggableManger 字段以在查询中使用。在Queries 或Mutations 中使用带有TaggableManger 字段的模型之前,从graphene_django.converter 注册@convert_django_field。
例子:
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)
【讨论】: