django - 使用 DjangoFilterConnectionField 时有没有办法删除边和

我开始在 django 中使用 Graphite 烯,现在我不需要边缘和节点的所有开销, 我知道这是为了分页,但现在我只需要我模型的字段。 需要明确的是,我仍然希望能够使用过滤器集,我只是不知道如何删除边缘和节点开销。 我试过使用 graphene.List 但我无法向其添加过滤器集。 所以不要这样做

{users(nameIcontains:"a")
{
   edges{
     node{
       name
     }
   }
}

我想做这个

{users(nameIcontains:"a")
{
  name
}

最佳答案

from graphene import ObjectType
from graphene_django import DjangoObjectType

class UserType(DjangoObjectType):
    class Meta:
        filter_fields = {'id': ['exact']}
        model = User    


class Query(ObjectType):
    all_users = List(UserType)

    @staticmethod
    def resolve_all_users(root, info, **kwargs):
        users = User.objects.all()
        # filtering like user.objects.filter ....

        return all_users

如果你想根据某些条件进行过滤,比如 department_id 和 可选的 social_club_id:

class Query(ObjectType):
    all_users = List(
        UserType,
        department_id=ID(required=True),
        social_club_id=ID(),    # optional
    )

    @staticmethod
    def resolve_all_users(root, info, department_id, **kwargs):
        social_club_id = kwargs.pop('social_club_id', None)

        users = User.objects.all()
        # filtering like user.objects.filter ....

        return all_users.objects.filter(department_id=department_id)

关于django - 使用 DjangoFilterConnectionField 时有没有办法删除边和节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60295566/

相关文章:

java - 当我使用 ContextHierarchy 时,没有类型为 'org.springfr

swift - 您可以将键盘快捷键绑定(bind)到 Xcode 中的换行吗?

node.js - 如何以只读模式获取Draft js中的链接?

linux - 将.net core 3.1 Web应用部署到Azure Linux应用服务

python - OpenCV VideoWriter 写入损坏的视频文件

android - 蓝牙扫描设备,频繁扫描后无法写入设备

typescript - TypeScript 中的非破坏性类型断言

html - 什么决定了 Firefox 中的滚动条是否有颜色?

google-cloud-platform - Terraform 0.12 使用模板创建入口规则

ruby-on-rails - jbuilder 空数组删除键