Unique_together M2M关系

时间:2016-12-09 08:11:01

标签: django unique m2m

我有以下两种模式:

class TournamentTeam(models.Model)
    profiles = models.ManyToManyField(Profile) # Profile is my user
    name = models.CharField(max_length=255)

    def __str__(self):
        return self.name


class Tournament(models.Model):
    name = models.CharField(max_length=255, verbose_name='navn')
    description = models.TextField(verbose_name='beskrivelse')
    team_size = models.IntegerField()
    teams = models.ManyToManyField('TournamentTeam')

    def __str__(self):
        return self.name

我希望nametournament TournamentTeamunique_together(由django自动生成)。 我尝试过简单地添加:

class Meta:
    unique_together = (('name', 'tournament'),)

没有成功。 我也尝试过初始化,但也没有成功。

def __init__(self, *args, **kwargs):
    super().__init__(*args, **kwargs)
    self._meta.unique_together = (('name', 'tournament'),)

1 个答案:

答案 0 :(得分:0)

unique_together用于模型字段。 '锦标赛不是一个领域'。 也许你想要' name'和'团队'但这也不会起作用,因为unique_together不能与ManyToManyField一起使用。

看看这里:https://docs.djangoproject.com/en/1.10/ref/models/options/#unique-together