我正在使用django-taggit
带有graphene-django的包。最初,我收到了这个问题(Don't know how to convert the Django field skills (<class 'taggit.managers.TaggableManager'>
)中指定的错误;但感谢那里的答案,我解决了这个问题。然而,还有一个问题!
我有以下混合:
class GrapheneRenderTaggitTags:
"""
Use this mixin to enable graphene-django correctly render django-taggit
tags (as a list of strings).
The corresponding model of the graphene type using this mixin should have a property
`get_tags` that returns the tags of the model (e.g. obj.tags.all())
"""
# Make django-taggit's TaggableManager interpretable to graphene
@convert_django_field.register(TaggableManager)
def convert_field_to_string(field, registry=None):
print(field)
print("i'm in the taggit parser function")
return List(String, source='get_tags')
当我将此 mixin 与来自石墨烯的DjangoObjectType一起使用时,它可以完美运行。但是,当涉及到mutation时,它会引发错误Don't know how to convert the Django field skills (<class 'taggit.managers.TaggableManager'>)
!
顺便说一句,为了防止手动创建 CUD 突变,我尝试了外部包,例如graphene_django_extras, graphene_model_mutations, graphene_django_cud
; 但无论是否使用上述 mixin,它们都会引发相同的错误。
请注意,仅在使用这些包提供的突变类时才会出现此错误。
请问,如果不手动编写 CUD 操作的所有逻辑,即通过使用从我的模型自动生成突变的包(任何包),我该怎么做才能让它工作?
还是我除了手动创建我的突变别无选择?