0
사람들이 언제 이벤트에 참석하는지 판단하려고하는 웹 앱이 있습니다.Django로 출석 데이터 처리하기
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가 필요하다고 생각합니다.