Django를 처음 사용하고 사용자가 로그인 한 시간과 사용자가 로그 아웃 한 시간을 등록하는 블로그를 작성하려고합니다.Django가 데이터베이스에 게시하는 시간
나는 이것이 전망에 들어갈 것이라고 생각하지만 문제에 접근하는 방법에 대한 단서가 없습니다.
사용자가 데이터베이스에 로그인 한 시간을 보내려면 어떻게해야합니까?
모든 힌트와 안내를 부탁드립니다.
Django를 처음 사용하고 사용자가 로그인 한 시간과 사용자가 로그 아웃 한 시간을 등록하는 블로그를 작성하려고합니다.Django가 데이터베이스에 게시하는 시간
나는 이것이 전망에 들어갈 것이라고 생각하지만 문제에 접근하는 방법에 대한 단서가 없습니다.
사용자가 데이터베이스에 로그인 한 시간을 보내려면 어떻게해야합니까?
모든 힌트와 안내를 부탁드립니다.
당신은 장고에 내장 된 인증을 사용하는 가정 사용자의 마지막 로그인 시간을 얻을 수 auth.model.User.last_login
을 사용할 수 있습니다 : 당신이 User
테이블보다는 다른 곳에서 다른 데이터를 저장하려면,
user = User.objects.get(username='johndoe')
last_login = user.last_login
당신을 이 last_login
을 원하는 테이블에 간단하게 삽입 할 수 있습니다. 그렇지 않으면 이미 models.User
입니다. 기록으로
로그 아웃, 당신은 당신의 logout
보려면 다음보기를 사용할 수 있습니다
from django.contrib.auth import logout
from django.utils import timezone
def logout_view(request):
logout(request)
logout_time = timezone.now()
# Now save your logout_time to the table you want
# Redirect to a success page.
을 양자 택일로, 당신은 마지막으로 로그 아웃 시간을 각각 기록하기 위해 (1.3 이상 장고에서 사용 가능) 장고의 user_logged_out
신호를 이용할 수있다 시간은 사용자가 로그 아웃 : 당신은 당신의 models.py
파일의 맨 아래에이를 넣을 수 있습니다
from django.contrib.auth.signals import user_logged_out
def update_last_logout(sender, user, **kwargs):
"""
A signal receiver which updates the last_logout date for
the user logging out.
"""
user.last_logout = timezone.now()
user.save(update_fields=['last_logout'])
user_logged_out.connect(update_last_logout)
. 위의 솔루션은 User
모델을 확장하여 last_logout
필드를 포함한다고 가정합니다. 그 일을 어떻게 수행할지 확실하지 않으면 여기에서 시작할 수 있습니다 : Django Tip 5: Extending contrib.auth.models.User.
실제로 두 번째 방법은 Django가 User
: models.py에 대해 last_login
을 정확히 업데이트하는 방법입니다.
참조 :