我正在使用Django建立一个网站。
models.py
class Member(models.Model):
...
end_date = models.DateField(blank=True, verbose_name='end_date')
Membership_status = models.IntegerField(blank=True, null=True, default=1)#1= active, 0=deactive, 2=refund status
我想将结束日期与今天进行比较,如果今天更新,我想自动将成员资格状态设为零(0)(目前为1)。
所以,我使用了Django-Kronos。
cron.py
from staff.models import Member
from datetime import timedelta
import datetime
import kronos
@kronos.register('* 1 * * *')
def the_task():
today = datetime.date.today()
Member.objects.filter(end_date__lte=today).update(Membership_status=0)
我安装了Django-Kronos并在已安装的应用程序中编写了kronos
。
但是,我不知道我是如何每隔1.a.m.自动实现cron.py的。
('* 1 * * *')
表示凌晨1点,但它无法正常工作。
修改
我在linux中尝试sudo python3 manage.py installtasks
(使用putty)。但是,0 tasks installed
发生了。
答案 0 :(得分:0)
回答我自己的问题!
我改变了cron.py的位置。 官方Kronos github说, 'Kronos从项目根目录中的cron模块和每个应用程序中收集任务
但是,我解决了将我的cron.py放在我的应用程序而不是项目根目录中的问题。