我的石墨烯 API 列表中有以下查询,
class Query(UserQuery, graphene.ObjectType):
all_users = DjangoFilterConnectionField(
UserType, filterset_class=UserFilter)
all_leagues = DjangoFilterConnectionField(
LeagueType, filterset_class=LeagueFilter)
对于这些连接字段,我需要应用 @login_required 样式权限。
我发现我需要解析这些 api 端点才能应用它们。
@login_required
def resolve_all_users(self, info):
#code
但是我不知道上面的方法返回什么? 有一个名为“用户”的模型,理想情况下需要返回该模型中的所有记录。
但是当我对第一个、最后一个、之前、之后应用过滤器时,出现以下错误,
"message": "Query.resolve_all_users() got an unexpected keyword argument 'first'"
请指教。
下面的代码显示了如何解析 DjangoFilterConnectionField,它与任何其他 Django 查询解析方法类似。
@login_required
def resolve_all_users(self, info, **kwargs):
user = info.context.user
if user.is_superuser:
return User.objects.all()
else:
return User.objects.filter(user_id=user.user_id)