【问题标题】:Post processing attendance data with Django使用 Django 后处理考勤数据
【发布时间】:2010-02-25 15:36:55
【问题描述】:

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

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 来自动签出不活动的用户。

【问题讨论】:

    标签: python django


    【解决方案1】:

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

    cron 应该运行一个独立的 Django 脚本 - 您可以通过几种不同的方式执行此操作,但最简单的方法是创建一个 standalone ./manage.pycommand

    【讨论】:

      猜你喜欢
      • 2013-10-12
      • 2019-10-12
      • 2021-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-22
      • 2019-11-27
      • 1970-01-01
      相关资源
      最近更新 更多