我的网站有一个部分,人们可以发布事件日期"事件日期" Django中的字段。是否存在"状态"字段(0表示挂起,1表示已批准,2表示已取消/已过期。)可以在事件日期字段中指定的日期后(如1天)更新为2?该网站旨在最小化维护,这将是一个巨大的帮助。
现在这只是一个本地服务器,使用MySQL并运行django版本1.6.2 python版本2.7.4我认为。
答案 0 :(得分:2)
数据库值无法自行对时间做出反应。你可以
让您的查询采用相对日期帐户(这会使您的查询更加复杂,您需要将事件日期字段与当前时间(django.utils.timezone.now()
)进行比较,并考虑{{1} } field
制作计划任务,如果事件日期已过,则会审核所有事件并更新status
对于后一种方法,有太多方法
使用a UNIX cron job运行Django管理命令(无外部依赖项)
使用a simple Django-friendly scheduled task process like Huey,每10分钟检查一次所有事件,如果已过期,则更新status
使用Huey而不是Cron可以使您的代码更简单,更优雅,更易于维护。使用Cron通常不需要Huey所需的其他软件,但要求你弄乱你的服务器设置而你的应用程序不那么独立。
Django本身缺乏计划任务的机制,因为它只能响应HTTP请求,而不是时间驱动的事件。