gpt4 book ai didi

django - 多对多的独特组合

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

我正在尝试在给定时间为玩家创建一个唯一的可用性状态。代码如下:

class Player(models.Model):
first_name = models.CharField(max_length=200)
last_name = models.CharField(max_length=200)

class Hour(models.Model):
date = models.DateTimeField()
players = models.ManyToManyField(Player, blank=True,
through='Availability')

class Availability(models.Model):
player = models.ForeignKey(Player, on_delete=models.CASCADE)
hour = models.ForeignKey(Hour, on_delete=models.CASCADE)
available = models.BooleanField()

我的问题是,目前可以多次添加相同的可用性 - 我想以编程方式将其限制为每个组合只有一个。

提前致谢!

最佳答案

您可以在“通过”表(在您的情况下为可用性表)上拥有 unique_together

class Availability(models.Model):
player = models.ForeignKey(Player, on_delete=models.CASCADE)
hour = models.ForeignKey(Hour, on_delete=models.CASCADE)
available = models.BooleanField()
class Meta:
unique_together = (('player','hour'),)

然后使用 get_or_create 进行添加/修改:

 obj,created = Availability.objects.get_or_create(hour=hour,player=player)

关于django - 多对多的独特组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44750308/

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