Python 使用Django对考勤数据进行后处理

Python 使用Django对考勤数据进行后处理,python,django,Python,Django,我有一个web应用程序,它试图确定人们何时参加活动 class Attendee(models.Model): location = models.ForeignKey(Location) user = models.ForeignKey(User) checked_in = models.DateTimeField() checked_out = models.DateTimeField() last_active = models.DateTimeFi

我有一个web应用程序,它试图确定人们何时参加活动

class Attendee(models.Model):
    location = models.ForeignKey(Location)
    user = models.ForeignKey(User)
    checked_in = models.DateTimeField()
    checked_out = models.DateTimeField()
    last_active = models.DateTimeField()
与会者每次登录到特定位置时都会签入,而每次注销时都会签出

问题是,确定某人何时实际“签出”,因为他们可能不会主动注销Django用户系统,我必须找到一种方法,在24小时后将他们注册为已签出

目前,我正在管理器中使用一个极其简单的ORM查询来列出站点上的“活动”和“非活动”用户

expires = datetime.datetime.today() - datetime.timedelta(seconds=settings.AUTO_CHECKOUT_AFTER)
# Get people who were last active more than 24 hours ago OR who have checked out
inactive_users = User.objects.all().filter(Q(attendee__last_active__lt = expires) \
                 | Q(attendee__checked_out__lte = datetime.datetime.now()), \
                 attendee__location=location).exclude(attendee__checked_out = None, attendee__checked_in__gte = expires).distinct()

做这件事最好的方法是什么?我猜需要一个相当于CRON作业的Django来自动签出非活动用户。

您不需要“相当于CRON作业的Django”,只需要一个CRON作业

cron应该运行一个独立的Django脚本——您可以用几种不同的方法来实现,但最简单的方法是创建一个独立的Django脚本