python - GraphQL:如何对节点的 "foreign key"集合项进行排序?

标签 python django graphql graphene-python

我使用 Django,graphene-djangodjango-filter构建 GraphQL api 并遇到 orderBy 问题:

GraphiQL

总的来说:我有院系,每个院系都有几个系。我可以对院系进行分类,但不能对院系进行分类。

Django 模型:

class Faculty(models.Model):
    code = models.CharField(...)

class Department(models.Model):
    code = models.CharField(...)
    faculty = models.ForeignKey(
        Faculty,
        on_delete=models.CASCADE,
        related_name="departments",
    )

为了能够对我添加的院系进行排序:

import graphene
import django_filters
from graphene import relay, ObjectType
from django_filters import OrderingFilter
from graphene_django.types import DjangoObjectType
from graphene_django.filter import DjangoFilterConnectionField

class FacultyFilter(django_filters.FilterSet):
    class Meta:
        model = Faculty
        fields = ['university']
    order_by = OrderingFilter(fields=('code',))

class DepartmentFilter(django_filters.FilterSet):
    class Meta:
        model = Department
        fields = ['university', 'faculty']
    order_by = OrderingFilter(fields=('code',))

class Query(object):
    faculty = relay.Node.Field(FacultyNode)
    all_faculties = DjangoFilterConnectionField(
        FacultyNode,
        filterset_class=FacultyFilter,
    )

    department = relay.Node.Field(DepartmentNode)
    all_departments = DjangoFilterConnectionField(
        DepartmentNode,
        filterset_class=DepartmentFilter,
    )

为什么我不能对一组部门进行排序?

最佳答案

将此字段添加到节点:

class FacultyNode(DjangoObjectType):
    departments = DjangoFilterConnectionField(
        DepartmentNode,  # lambda: DepartmentNode (if Node is defined later)
        filterset_class=DepartmentFilter,
    )

关于python - GraphQL:如何对节点的 "foreign key"集合项进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49861305/

相关文章:

python - 按列表中的值过滤 pandas DataFrame

python - Django:如何在注释查询集中添加比较条件

linux - 为什么将 export DJANGO_SETTINGS_MODULE ='myproject.settings' 添加到 bashrc 不再起作用?

Django:从 XAMPP 迁移到 Django 问题

java - 如何在不在 java 中运行 curl 命令的情况下从 java 访问 github graphql API

python - 使用 subprocess 命令调用 R 脚本,但 r 脚本中的 Library() 命令阻止它运行

Python pandas 从兄弟目录读取 CSV

django - Nginx 502 网关错误 - gcp

graphql - buildSchema 和 GraphQLSchema 之间的显着差异?

javascript - 使用 gatsby-drupal-webform 和 GraphQL 时出现错误未知类型 "webform__webform"