fanfanacs 2023-01-31 15:54 采纳率: 100%
浏览 47
已结题

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中的时候出现了问题,但是不知道该怎么改

  • 写回答

3条回答 默认 最新

  • 临风而眠 2023-01-31 16:00
    关注

    解决方法是将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
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月8日
  • 已采纳回答 1月31日
  • 创建了问题 1月31日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。