BUG

class VerificationCode(models.Model):
    """验证码模型"""
    expires_at = models.DateTimeField(
        default=lambda: datetime.datetime.now() + datetime.timedelta(minutes=10))  # 10分钟有效期

报错:ValueError: Cannot serialize function: lambda。

DEBUG

原因:Django的迁移系统无法序列化lambda函数。
改成下述方式:

class VerificationCode(models.Model):
    """验证码模型"""
    def get_expires_at(self):
        return datetime.datetime.now() + datetime.timedelta(minutes=10)  # 10分钟有效期

    expires_at = models.DateTimeField(default=get_expires_at)

后续会报self参数问题,还是直接把get_expires_at函数调到类外吧:
在这里插入图片描述

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐