You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django报错datetime fromisoformat: argument must be str,存储日期至数据库失败

问题解决:datetime fromisoformat类型错误

错误根源

你代码里存在几个关键问题:

  1. 错误生成日期值:date = models.DateTimeField(default=timezone.now)这行是在创建DateTimeField字段对象,而非获取当前时间值。数据库需要的是datetime类型的时间实例,不是字段类本身,这直接触发了类型不匹配错误。
  2. 其他潜在问题:
    • email = request.user.get_email:Django默认用户模型的邮箱属性是email,应改为request.user.email;如果get_email是自定义方法,需加括号调用get_email()。
    • redirect(request,"{% url 'home' %}"):redirect函数不需要传入request参数,且视图中不能使用模板标签语法,直接写redirect('home')即可。

修正后的代码

from django.utils import timezone
from django.contrib import messages
from django.shortcuts import render, redirect
# 请确保已导入你的supportmessages模型

def message_send(request):
    if request.user.is_authenticated:
        if request.method == 'POST':
            name = request.user.username
            email = request.user.email  # 修正:直接获取用户邮箱属性
            title = request.POST.get('title')
            message = request.POST.get('message')
            date = timezone.now()  # 修正:调用timezone.now()获取当前时间对象
            support = supportmessages(
                name=name,
                email=email,
                title=title,
                message=message,
                date=date
            )
            support.save()
            messages.success(request, 'Your message has been sent')  # 修正拼写错误:mesaage→message
            return render(request,"messagesend.html")
        return render(request,"messagesend.html")
    else:
        return redirect('home')  # 修正:直接使用URL名称跳转

额外优化建议

如果你的supportmessages模型已经给date字段设置了default=timezone.now,视图里完全可以省略手动传入date参数,模型会自动填充默认值:

# 模型示例
class supportmessages(models.Model):
    name = models.CharField(max_length=100)
    email = models.EmailField()
    title = models.CharField(max_length=200)
    message = models.TextField()
    date = models.DateTimeField(default=timezone.now)  # 模型层设置默认值

# 视图中可简化为:
support = supportmessages(
    name=name,
    email=email,
    title=title,
    message=message
)

内容的提问来源于stack exchange,提问作者user20747805

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 19:05:21