如何在Django中创建预保存信号?

问题描述 投票:0回答:1

我有一个生成验证令牌的模型:

class VerificationTokenModel(BaseModel):
    user = models.OneToOneField(User, on_delete=models.PROTECT, related_name='verification_token')
    verification_token = models.CharField(max_length=100, editable=False, unique=True)
    token_type = models.CharField(max_length=100, choices=TOKEN_TYPE)
    expiry_time = models.DateTimeField(default=get_current_time)
    is_used = models.BooleanField(default=False)

现在,我想要的是没有用户可以在5分钟内再次生成另一个访问令牌,并且用户每天最多可以生成10次令牌。如何使用预保存信号实现此目的?

django django-models django-signals
1个回答
1
投票
您最好在模型中覆盖clean()(如果直接调用.save(),则不会调用nb,则不会调用它:

save()

© www.soinside.com 2019 - 2024. All rights reserved.