如何保存用户上次登出时间
How to save the users last logout time
我希望保存用户上次注销 time.My 想法是将其添加到用户配置文件模型中。我正在使用 Django 1.11.15
示例:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
...
last_logout = models.DateTimeField(blank=True, null=True)
下面是我创建个人资料模型的方法,仅供参考
def signup(request):
if request.method == 'POST':
form = UserCreateForm(request.POST or None)
if form.is_valid():
new_user = form.save()
Profile.objects.create(user=new_user)
return redirect('accounts:edit_profile')
else:
form = UserCreateForm()
context = {'form': form}
return render(request, 'accounts/signup.html', context)
下面是我打算做的。这是正确的方法吗。我想添加到 django 的默认 signout/logout 方法我不确定它是叫 signout
还是 logout
class LoggedOut(TemplateView):
template_name = 'logged_out.html'
def signout(self):
"""logout user """
self.request.user.profile.last_logout = datetime.now()
self.request.user.profile.save()
我的URL的
url(r'^loggedout/$', views.LoggedOut.as_view(), name='loggedout'),
您可以为此目的使用 Django logout 信号。
from django.contrib.auth.signals import user_logged_in, user_logged_out
from django.dispatch import receiver
@receiver(user_logged_out)
def sig_user_logged_out(sender, user, request, **kwargs):
user.profile.last_logout = datetime.now()
user.profile.save()
我希望保存用户上次注销 time.My 想法是将其添加到用户配置文件模型中。我正在使用 Django 1.11.15
示例:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
...
last_logout = models.DateTimeField(blank=True, null=True)
下面是我创建个人资料模型的方法,仅供参考
def signup(request):
if request.method == 'POST':
form = UserCreateForm(request.POST or None)
if form.is_valid():
new_user = form.save()
Profile.objects.create(user=new_user)
return redirect('accounts:edit_profile')
else:
form = UserCreateForm()
context = {'form': form}
return render(request, 'accounts/signup.html', context)
下面是我打算做的。这是正确的方法吗。我想添加到 django 的默认 signout/logout 方法我不确定它是叫 signout
还是 logout
class LoggedOut(TemplateView):
template_name = 'logged_out.html'
def signout(self):
"""logout user """
self.request.user.profile.last_logout = datetime.now()
self.request.user.profile.save()
我的URL的
url(r'^loggedout/$', views.LoggedOut.as_view(), name='loggedout'),
您可以为此目的使用 Django logout 信号。
from django.contrib.auth.signals import user_logged_in, user_logged_out
from django.dispatch import receiver
@receiver(user_logged_out)
def sig_user_logged_out(sender, user, request, **kwargs):
user.profile.last_logout = datetime.now()
user.profile.save()