Используйте пакет django-taggit с графеновыми мутациями
Я использую пакет 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')
Когда я использую этот миксин с DjangoObjectType из graphene, он работает безупречно.
Однако, когда дело доходит до мутаций, возникает ошибка Don't know how to convert the Django field skills (<class 'taggit.managers.TaggableManager'>)
!
Кстати, чтобы не создавать вручную CUD-мутации, я пробовал внешние пакеты, такие как graphene_django_extras, graphene_model_mutations, graphene_django_cud
; но все они выдают одну и ту же ошибку как с вышеупомянутым миксином, так и без него.
Обратите внимание, что я получаю эту ошибку только при использовании классов мутаций, предоставляемых этими пакетами.
Пожалуйста, что я могу сделать, чтобы заставить это работать без ручного написания всей логики для операций CUD, т.е. используя пакет (любой пакет), который автоматически генерирует мутации из моих моделей?
Или у меня нет другого выбора, кроме как вручную создавать свои мутации?