【发布时间】:2019-06-01 01:37:12
【问题描述】:
我有一个游戏玩家的 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',)
我只有一个唯一约束,即名称和游戏是唯一的。
现在,我想通过添加注册用户来扩展我们的页面。所以,我会把它添加到模型中。
user = models.ForeignKey('auth.User', on_delete=models.CASCADE, blank=True, null=True)
因此,注册用户可以通过添加名称、团队、游戏和他/她的用户来订阅游戏。但是,用户应该只能将他的帐户添加到游戏中一次,这将是第二个独特的约束
unique_together = ('user', 'game',)
是否可以在 Django 中为模型提供两个独特的约束?还是我必须在保存新条目之前手动在表中搜索?还是有更好的办法?
【问题讨论】:
标签: django model constraints