【问题标题】:How to model a one to many relationship in Django如何在 Django 中建模一对多关系
【发布时间】:2018-12-11 22:20:23
【问题描述】:

在我当前的 Django 项目中,我有玩家列表和游戏列表,我正在寻找一个 Django 字段来存储玩家参与的游戏的信息。举个例子:用户 1 玩了游戏 1、2、3,用户 2 玩了 2、3…… 由于并非游戏的所有玩家都已注册,因此我不是在寻找游戏与玩家的关系。所以,我正在寻找一个类似一对五的领域(几场比赛的球员)。

到目前为止,我找到了 ForeignKey 字段。但是,当我将其添加到游戏中时,我只能存储一个玩家而不是多个玩家 ID。还是我错过了什么?

如何在 Django 模型字段中表达我的问题?

【问题讨论】:

标签: django model foreign-keys one-to-many


【解决方案1】:

就一个用户可以参与不同的游戏而一个游戏可以包含多个用户而言,您可能需要 ManyToMany 关系。 您可以将用户作为 ManyToMany 字段添加到Game 模型:

users = models.ManyToManyField('User')

为了将用户添加到游戏中,您可以这样做:

game = Game.objects.get(...)
user1 = User.objects.get(...)
user2 = User.objects.get(...)
users = [user1, user2]
game.users.add(*users)

如果您想查看特定游戏的所有用户:

game = Game.objects.get(...)
game.users.all()

如果您想查看特定用户参与了哪些游戏:

user = User.objects.get(...)
user.game_set.all()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-04
    • 2020-09-28
    • 1970-01-01
    • 2011-07-09
    • 1970-01-01
    相关资源
    最近更新 更多