如何自动递增 Django IntegerField

How to automatically increment Django IntegerField

提问人:Raji Muhammad 提问时间:5/25/2023 最后编辑:Nico GriffioenRaji Muhammad 更新时间:5/25/2023 访问量:41

问:

我的模型中有一个字段

Step=models.IntegerField()

我通常在模板中调用它,如下所示:

{{user.step}}

现在,我希望此字段在每年后自动增加

这里最好的方法是什么?

Python Django 方法 模型 自动递增

评论


答:

0赞 Bartosz Stasiak 5/25/2023 #1

它是基于某个时间戳吗?喜欢出生日期?

在这种情况下,您几乎没有选择:

  1. 将其设置为属性,并在将数据发送到模板之前重新计算它

    from dateutil.relativedelta import relativedelta
    
    @property
    def step(self):
        return relativedelta(datetime.now(), self.timestamp).years
    
  2. 使用上述方法制作每天更新步骤字段的 cronjob

评论

0赞 Raji Muhammad 5/26/2023
所以我必须安装cronjob库,对吧?我正在考虑一种没有任何第三方库的方法
1赞 Bartosz Stasiak 5/26/2023
Cron 内置于 Linux 中。你应该能够使用类似“* * * * * python /path/to/project/manage.py management_command”的东西运行 django 命令