Django限制从模型中的两个外键之一选择文件

时间:2011-12-29 18:08:35

标签: django django-models django-forms

只是好奇django实现以下目标的方式:

模型示例:

class Match(models.Model):
    p1 = models.ForeignKey(Player , related_name='player1')
    p2 = models.ForeignKey(Player  ,related_name='player2')

    game1_winner = models. #Something that would limit the choice of the winner to only the two participants . 
    game2_winner = # the same . 

我应该在表格中处理这个逻辑还是应该在保存方法中处理它?什么是实现这一目标的最佳方式?

提前谢谢你。

1 个答案:

答案 0 :(得分:2)

就个人而言,我会将它们分开并处理视图中的限制。

这样的事情:

class Match(models.Model):
    p1 = models.ForeignKey(Player , related_name='player1')
    p2 = models.ForeignKey(Player  ,related_name='player2')

class Game(models.Model):
    match = models.ForeignKey(Match)
    winner = models.ForeignKey(Player)

然后根据比赛处理哪些球员可以被指定为获胜者。这只是我对它的看法。