Django Graphene (GraphQL) фильтр на ManyToMany

Я работаю над приложением, используя Django. Мы открыли модели с помощью Graphene. У нас есть следующие модели:

class Agent(models.Model):
    id = models.UUIDField(default=uuid.uuid4, unique=True, primary_key=True, editable=False)

    name = models.CharField(
        max_length=MAX_LENGTH,
        null=True, blank=True,
        help_text="Name of the agent"
    )


    teams = models.ManyToManyField(
        'Team', blank=True,
        help_text="The teams of which the user is part"
    )



class Team(models.Model):
    id = models.UUIDField(default=uuid.uuid4, unique=True, primary_key=True, editable=False)

    name = models.CharField(
        max_length=MAX_LENGTH,
        help_text="Name of the team"
    )

Теперь я пытаюсь выполнить фильтр для поля ManyToMany. Но я не могу заставить его работать. Я пытаюсь воспроизвести следующий запрос Django в GrapQL:

teams = [
    Team.objects.get(id="6d6d1d4d-c1b4-485a-9269-f7e9d06d862a"),
    Team.objects.get(id="7e082abf-584b-4858-b510-4c71fc295e2f"),
]
agents = Agent.objects.filter(teams__in=teams).distinct()

Я попытался добиться этого, включив фильтр 'in' на узле.

class AgentNode(DjangoObjectType):
    class Meta:
        model = Agent
        filter_fields = {
            "teams": ["in"]
        }

Затем я попытался выполнить следующий запрос, но он не сработал, как ожидалось:

query getAllAgents{
  allAgents(teams_In:["6d6d1d4d-c1b4-485a-9269-f7e9d06d862a, 7e082abf-584b-4858-b510-4c71fc295e2f"]) {
    id
    name
    teams {
      id
      name
    }
  }
}

Это дает мне следующую ошибку:

{
  "errors": [
    {
      "path": [
        "allAgents"
      ],
      "message": "'list' object has no attribute 'split'",
      "locations": [
        {
          "column": 3,
          "line": 2
        }
      ]
    }
  ],
  "data": {
    "allAgents": null
  }
}

Кто-нибудь знает, как я могу заставить это работать? Я уже всю голову сломал над этим.

Python=2.7
Django==1.10.8
graphene-django==2.2.0
graphene-django-extras==0.3.5
django-filter==1.0.4

(я знаю, что версии старые, но для этого проекта мы должны работать с ними)

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