考虑以下情况:
-用户
-力量
-合格
在我的Power
模型中,我赋予了超级用户创建自定义权力的能力,并且在创建权力的选项中,有一个字段可供他们选择何时可以使用这些权力的资格日期。 User
并“金额”一个月内可以使用几次。那很简单,但是,我还有另一个名为Eligible
的模型,它看起来像这样:
class Eligible(models.Model):
user = models.ForeignKey(User, on_delete=blahblah)
power = models.ForeignKey(Power)
eligible = models.BooleanField()
balance = models.DecimalField(max_digits=8, decimal_places=2)
创建用户时,将Power链接到该用户对象(如果他们立即具有资格),则将创建Eligible
模型中该Power的用户对象,并设置eligible
字段设置为true并将金额添加到他们的余额中,如果他们不符合条件,则将其设置为false,然后我要创建一个任务,该任务每月自动更新其余额。
如果是这样,我该怎么做?
谢谢您的时间。我尽力写这篇清醒的人的话。
答案 0 :(得分:1)
你不知道。您可以简单地编写一些逻辑,如果当前的tiemstamp晚于该时间戳,则进行检查。
例如,Power
模型如下:
class Power(models.Model):
activate = models.DateTimeField()
然后我们可以实现如下逻辑:
from django.utils.timezone import now
class Eligible(models.Model):
user = models.ForeignKey(User, on_delete=…)
power = models.ForeignKey(Power, on_delet=…)
immediately_eligible = models.BooleanField()
@property
def is_eligible(self):
return self.immediately_eligible or now() >= self.power.activate
如果is_eligible
设置为True
,或者时间戳晚于(或等于){{1},则immediately_eligible
属性将为True
}。