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()
вместо этого, или тот факт, что мой код отличается от всех примеров, которые я нашел, означает, что я вообще настраиваю это неправильно.
Если кто-нибудь может дать мне несколько подсказок по этому вопросу, я буду очень благодарен!