from userSession.models import UserSessionTrace
from django.db.models import Max, Min
from datetime import datetime, timedelta
# Min, Max를 이용한 방법
>>> UserSessionTrace.objects.aggregate(trc_id=Max('trc_id'))
{'trc_id': 5}
>>> UserSessionTrace.objects.aggregate(trc_id=Min('trc_id'))
{'trc_id': 1}
UserSessionTrace.objects.filter(trc_session='a4e6f237-bec3-48fe-81c8-75c10a374260').aggregate(trc_id=Max('trc_id'))
{'trc_id': 5}
UserSessionTrace.objects.filter(trc_session='a4e6f237-bec3-48fe-81c8-75c10a374260').aggregate(trc_id=Min('trc_id'))
{'trc_id': 1}
# last, first를 이용한 방법
# last(), first()의 기준은 해당 models.py에 정의된 Meta속성의 ordering에 정의된 ASC 혹은 DESC(-)로 결정된다. 나는 DESC로 정의 되어 있어서 first()가 가장 최신건을 가져온다.
UserSessionTrace.objects.last()
<UserSessionTrace: 1>
UserSessionTrace.objects.first()
<UserSessionTrace: 5>
UserSessionTrace.objects.filter(trc_session='a4e6f237-bec3-48fe-81c8-75c10a374260').last()
<UserSessionTrace: 1>
UserSessionTrace.objects.filter(trc_session='a4e6f237-bec3-48fe-81c8-75c10a374260').first()
<UserSessionTrace: 5>
# 특정필드만 저장
_userSessionTrace.trc_invk_dt = datetime.now()
_userSessionTrace.trc_invk_cnt += 1
_userSessionTrace.save(update_fields=['trc_invk_dt', 'trc_invk_cnt'])