django - 我想在 django 中将用户活动添加到数据库
问题描述
我想将每个用户的登录和注销时间添加到数据库中
在我的模型中,我不知道如何创建它
模型.py
class User(models.Model):
id = models.AutoField(primary_key=True, unique=True)
name = models.CharField(max_length=20)
username = models.CharField(max_length=20)
password = models.CharField(max_length=20)
timezone = models.CharField(max_length=32, choices=TIMEZONES,default='UTC')
login_time = models.DateTimeField(default=datetime.now())
logout_time = models.DateTimeField(default=datetime.now())
def __str__(self):
return self.name
每次用户登录或注销时,都会存储当前活动
视图.py
@csrf_exempt
def dash_board(request):
if request.method == 'POST':
if User.objects.filter(username=request.POST['username'],
password=request.POST['password']).exists():
global user
user = User.objects.get(username=request.POST['username'],
password=request.POST['password'])
act = User.objects.get(id=user.id)
act.login_time = datetime.now()
act.save()
return render(request, 'dash.html', {'user': user, })
else:
return render(request, 'index.html')
@csrf_exempt
def logout(request):
if request.method == "POST":
act = User.objects.get(id=user.id)
act.logout_time=datetime.now()
act.save()
return render(request,'index.html')
else:
return HttpResponse("<h1>Error While LogOut..!!</h1>")
谁能帮我解决这个问题
解决方案
您不创建 id 它默认存在 id=pk 当您检查用户用户名或 user.password 它在 django 中存在时,在用户名和密码 django 中相同
class User(models.Model):
name = models.CharField(max_length=20)
login_time =
models.DateTimeField(default=timezone.now)
logout_time =
models.DateTimeField(default=timezone.now)
def __str__(self):
return self.name