gpt4 book ai didi

django - 与 django 的一对多关系

转载 作者:行者123 更新时间:2023-12-04 23:09:09 25 4
gpt4 key购买 nike

我打算创建一个团队系统,其中每个团队可能包含多个参赛者。参赛选手居然是auth.User .类似于:

Team:  
Contestant1
Contestant2
.
.
ContestantN
由于参赛者实际上是一个用户,我无法修改该用户以拥有团队的外键。实现这一目标的最佳方法是什么?
我的方法是:
  • 创建一个 OneToOne指向团队的用户个人资料。
  • 定义一个 ManyToMany用户和团队之间的关系,其中用户必须是唯一的。

  • 暂停
    我正在重新设计我的应用程序的结构,所以我会再次改写这个问题
    感谢您的回复,我会考虑它们,看看其中一个是否合适。

    最佳答案

    你可以这样做:

    class Team(models.Model):
    contestants = models.ManyToManyField(User, through='Contestant')

    class Contestant(models.Model):
    team = models.ForeignKey(Team)
    user = models.ForeignKey(User)
    [here go Contestant data fields]

    这允许一个用户参加不同的团队,但如果您不想允许这样做,您可以添加 唯一=真 Contestant.user .

    关于django - 与 django 的一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4917808/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com