Object of type datetime is not JSON serializable

Object of type datetime is not JSON serializable

在跟一个网站开发的教程一步步走然后再登陆验证的时候遇到了问题

代码如下:def dologin(request):
try:
    # 根据登录账号获取用户信息
    user = User.objects.get(username=request.POST['username'])
    # 校验当前用户状态是否是管理员
    if user.status == 1:
        # 获取密码并md5
        import hashlib
        md5 = hashlib.md5()
        n = user.password_salt  # 从表单中获得加盐信息
        s = request.POST['pass'] + str(n)  # 把密码和加盐信息放一起
        md5.update(s.encode('utf-8'))  # 将要产生MD5的子串放进去
        # 校验密码是否正确
        if user.password_hash == md5.hexdigest():  # 获得md5值 并和数据库里做对比
            # 将当前登录成功用户信息以adminuser这个key放入到session中
            request.session['adminuser'] = user.toDict()  # 这个toDict函数在model.py中有定义,是转换字典的
            return redirect(reverse('myadmin_index'))
        else:
            context = {"info": "登录密码错误!"}
    else:
        context = {"info": "此用户非后台管理账号!"}
except Exception as err:
    print(err)
    context = {"info": "登录账号不存在!"}
return render(request, "myadmin/index/login.html", context)

目前知道的问题是return redirect(reverse('myadmin_index'))这个代码
在将datetime数据放入以adminuser这个key放入到session中的时候出现了问题,但是不知道该怎么改

解决方法是将datetime对象转换为字符串或整数。例如,可以使用datetime.strftime()方法将日期转换为格式化的字符串:

import datetime 
# Get the current date and time 
now = datetime.datetime.now() 
# Format it as a string 
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S") 
# Store it in the session 
request.session['adminuser'] = formatted_date

也可以使用datetime.timestamp()方法将datetime对象转换为整数:

import datetime 
# Get the current date and time 
now = datetime.datetime.now() 
# Convert it to a timestamp 
timestamp = now.timestamp() 
# Store it in the session 
request.session['adminuser'] = timestamp

datetime 类型不支持json序列化,先把它转字符串