如何在Django+GraphQL中正确交互多对多关系?
我有一个游戏模型,它与用户模型有多对多的关系。
class Game(models.Model):
name = models.CharField(max_length=256, blank=True)
users = models.ManyToManyField(to=User, blank=True, related_name='games')
class User(AbstractUser):
email = models.EmailField(max_length=128, verbose_name='email address', blank=False)
我需要将它连接到GraphQL,这样我就可以通过mutation读取和修改这些字段。
我已经有了一个可以在不使用users
的情况下使用Game
的模式,但现在我还需要添加用户
{
games {
edges {
node {
id
name
}
}
}
}
但是当我添加users
时,它不起作用,因为db中的Game
表没有users
字段。它有一个games_game_users
表来描述它们之间的关系。
我如何修改我的代码才能使用game.users
字段?
1条答案
按热度按时间gkl3eglg1#
如果你想在Django+GraphQL中与多对多关系交互,你应该正确定义你的节点。
这就是我的情况下应该如何定义的:
所以这个GraphQL请求将显示你的游戏和连接的用户
要在游戏中添加或删除用户,请使用
add()
和remove()
方法: