class Foo(models.Model):
name = models.CharField(max_length=256)
total = models.SmallIntegerField()
availability = models.SmallIntegerField()
class Bar(models.Model):
somthing = ...
foo = models.ForeignKey(Foo, blank=True, null=True)
每次保存Bar,并且用户选择了Foo,它必须将可用性降低1.当用户从Foo中取消选择一个选项时,它会将可用性加1。因此,如果您选择另一个选项,那个选项将获得1减去,并且取消选择1加1。
是否有可用于检测是否选择了外键的信号?
答案 0 :(得分:0)
您可以根据限制和当前使用来存储限制并计算可用性,而不是存储availability
。
像
这样的东西class Foo(models.Model):
name = models.CharField(max_length=256)
total = models.SmallIntegerField()
limit = models.SmallIntegerField()
def get_availability(self):
return limit - self.bar_set().count()
您可以将availability
作为模型的属性而不是方法调用。