小编Com*_*ser的帖子

如何在 Django 模型中使用两个唯一约束?

我有一个游戏玩家的 Django 模型

class Player(models.Model):
    name = models.CharField(max_length=50)
    team = models.ForeignKey('Team', on_delete=models.CASCADE, blank=True, null=True)
    game = models.ForeignKey('Game', on_delete=models.CASCADE)
    objects = GameManager()

    class Meta:
       unique_together = ('name', 'game',)
Run Code Online (Sandbox Code Playgroud)

我只有一个独特的约束,即名称和游戏是独一无二的。

现在,我想通过添加注册用户来扩展我们的页面。因此,我会将其添加到模型中。

        user = models.ForeignKey('auth.User', on_delete=models.CASCADE, blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)

因此,注册用户可以通过添加名称、团队、游戏和他/她的用户来订阅游戏。但是,用户应该只能将他的帐户添加到游戏中,这将是第二个独特的限制

       unique_together = ('user', 'game',)
Run Code Online (Sandbox Code Playgroud)

是否可以在 Django 中为模型提供两个独特的约束?或者我是否必须在保存新条目之前手动在表中搜索?或者,还有更好的方法?

谢谢

django model constraints

5
推荐指数
2
解决办法
2865
查看次数

标签 统计

constraints ×1

django ×1

model ×1