мое приложение имеет несколько взаимосвязей "многие ко многим" со сквозной моделью , например, так:
class Person(models.Model):
name = models.CharField()
class Group(models.Model):
name = models.CharField()
members = models.ManyToManyField(Person, through='Membership')
class Membership(models.Model):
person = models.ForeignKey(Person)
group = models.ForeignKey(Group)
date_joined = models.DateField() # Extra info on the relationship
Казалось бы, интуитивно представлять эти данные в graphql без промежуточного типадля членов (вариант А):
{
"data": {
"persons": [
{
"id": "1",
"name": "Jack",
"groups": [
{
"id": 3, # From Group-model
"name": "Students", # From Group-model
"date_joined": "2019-01-01" # From Membership-model
},
...
]
}
]
}
}
против.Вариант Б:
{
"data": {
"persons": [
{
"id": "1",
"name": "Jack",
"memberships": [
{
"id": 9,
"date_joined": "2019-01-01"
"group": {
"id": 3,
"name": "Students"
}
},
...
]
}
]
}
}
Я не смог найти примеров того, как реализовать вариант А с (django-) графеном.Как это можно сделать, и это поддерживается из коробки?
Каковы плюсы и минусы обоих подходов?Данные также должны быть видоизменены довольно часто, это меняет вердикт?