Graphene-django get_node vs get_queryset

В настоящее время я знакомлюсь с graphene-django, и есть один аспект, который мне не совсем понятен.

Я хочу позволить своим пользователям использовать GraphQL для запросов к нашей базе данных. Мне хотелось бы, чтобы они могли фильтровать результаты по значениям атрибутов, поэтому я предоставляю свои модели в виде ThingNode с filter_fields и interfaces = (relay.Node, ), а не в виде ThingType.

Теперь во всех примерах, которые я смог найти, говорится о необходимости перегрузить get_node(), если я хочу взаимодействовать с выводом, например, для проверки прав пользователя. Однако моя реализация, как она работает сейчас, никогда не проходит через get_node(), а вместо этого использует get_queryset(). Я изучил существующие пакеты, предлагающие управление разрешениями, такие как django-graphene-permissions, но они также подключаются к get_node().

Теперь я не уверен, стоит ли мне просто поместить проверку разрешения в ThingNode.get_queryset() вместо этого, или тот факт, что мой код отличается от всех примеров, которые я нашел, означает, что я вообще настраиваю это неправильно.

Если кто-нибудь может дать мне несколько подсказок по этому вопросу, я буду очень благодарен!

Вернуться на верх