Fra*_*dej 3 django django-models
我正在尝试在给定的时间为玩家创建一个独特的可用性状态。代码如下:
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()
Run Code Online (Sandbox Code Playgroud)
我的问题是,目前可以多次添加相同的可用性 - 我想以编程方式将其限制为每个组合一个。
提前致谢!
小智 8
您可以在“throuh”表(在您的情况下为可用性表)上拥有 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'),)
Run Code Online (Sandbox Code Playgroud)
然后使用 get_or_create 进行添加/修改:
obj,created = Availability.objects.get_or_create(hour=hour,player=player)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2600 次 |
最近记录: |