Django-如何每天运行函数?

Django-如何每天运行函数?,django,date,notifications,recurrence,django-timezone,Django,Date,Notifications,Recurrence,Django Timezone,我想每天午夜运行此函数以检查到期日期通知。我能做什么?我不熟悉django和python def check_expiry_date(request): products = Product.objects.all() for product in products: product_id = product.id expiry_date = product.expiry_date notification_days = produ

我想每天午夜运行此函数以检查到期日期通知。我能做什么?我不熟悉django和python

def check_expiry_date(request):
    products = Product.objects.all()
    for product in products:
        product_id = product.id
        expiry_date = product.expiry_date
        notification_days = product.notification_days
        check_date = int((expiry_date - datetime.datetime.today()).days)
        if notification_days <= check_date:
            notification = Notification(product_id=product_id)
            notification.save()
def检查到期日(请求):
products=Product.objects.all()
对于产品中的产品:
product\U id=product.id
到期日=产品。到期日
通知天数=产品通知天数
检查日期=int((到期日期-datetime.datetime.today()).days)
如果通知天数请查看:

您可以使用cron编写并计划其执行,也可以使用


通过
pip Install django芹菜安装

我计划在自定义管理命令中安装它。但是我应该在插入类中的Basecommand中提供什么样的函数呢?我真的不想创建另一个答案,所以我将尝试加入注释。只需创建一个从BaseCommand继承的类,创建字符串属性:args和包含manage.py--help的简短描述/语法信息的帮助。然后,定义一个句柄方法。。。就这样。在该方法中,您可以导入函数并简单地执行它。我可以看到这个函数现在可能是一个视图。但是,当我看到它的主体时,它并没有真正使用请求对象,所以你可以让它不带参数,直接调用它。这只是给谷歌的一个提醒:芹菜现在支持Django,所以不需要安装
Django芹菜
。只需安装芹菜。检查文档:
from celery.schedules import crontab
from celery.task import periodic_task

@periodic_task(run_every=crontab(hour=7, minute=30, day_of_week="mon"))
def every_monday_morning():
    print("This is run every Monday morning at 7:30")