0

我正在使用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 操作的所有逻辑,即通过使用从我的模型自动生成突变的包(任何包),我该怎么做才能让它工作?

还是我除了手动创建我的突变别无选择?

4

0 回答 0