Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django向数据库发布时间_Python_Django - Fatal编程技术网

Python Django向数据库发布时间

Python Django向数据库发布时间,python,django,Python,Django,我是Django的新手,正在尝试建立一个博客,记录用户登录和注销的时间 我猜这会出现在视图中,但我不知道如何解决这个问题 如何发送用户登录数据库的时间 任何提示和指导都将不胜感激。如果您使用的是Django的内置身份验证,您可以使用来获取用户的上次登录时间: user = User.objects.get(username='johndoe') last_login = user.last_login 如果要将此数据存储在用户表以外的其他位置,只需将此上次登录插入所需的表即可。否则,它已经在模

我是Django的新手,正在尝试建立一个博客,记录用户登录和注销的时间

我猜这会出现在视图中,但我不知道如何解决这个问题

如何发送用户登录数据库的时间

任何提示和指导都将不胜感激。

如果您使用的是Django的内置身份验证,您可以使用来获取用户的上次登录时间:

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为
用户更新
上次登录的方式


参考: