Python Django向数据库发布时间
我是Django的新手,正在尝试建立一个博客,记录用户登录和注销的时间 我猜这会出现在视图中,但我不知道如何解决这个问题 如何发送用户登录数据库的时间 任何提示和指导都将不胜感激。如果您使用的是Django的内置身份验证,您可以使用来获取用户的上次登录时间:Python Django向数据库发布时间,python,django,Python,Django,我是Django的新手,正在尝试建立一个博客,记录用户登录和注销的时间 我猜这会出现在视图中,但我不知道如何解决这个问题 如何发送用户登录数据库的时间 任何提示和指导都将不胜感激。如果您使用的是Django的内置身份验证,您可以使用来获取用户的上次登录时间: user = User.objects.get(username='johndoe') last_login = user.last_login 如果要将此数据存储在用户表以外的其他位置,只需将此上次登录插入所需的表即可。否则,它已经在模
user = User.objects.get(username='johndoe')
last_login = user.last_login
如果要将此数据存储在用户
表以外的其他位置,只需将此上次登录
插入所需的表即可。否则,它已经在模型中。User
至于记录注销,您可以在注销视图中使用以下视图:
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.
或者,您可以利用Django的user\u logged\u out
信号(Django 1.3+中提供)记录用户每次注销时的上次注销时间:
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)
您可以将其放在models.py
文件的底部。请注意,上述解决方案假设您将扩展用户
模型,以包括上次注销
字段。如果您不确定如何进行此操作,可以从这里开始:
事实上,第二种方法正是Django为用户更新上次登录的方式
参考: