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

Django数据库无法存储数据,实例化appointment模型时报TypeError

Django模型实例创建报错:TypeError: appointment() got an unexpected keyword argument 'name'

问题代码与报错

views.py 相关代码

def thanks(request):
    if request.method == 'POST':
        name = request.POST['name']
        email = request.POST['email']
        phone= request.POST['phone']
        doctor = request.POST['doctor']
        msg = request.POST['reason']
        print(name, email, phone, msg)
        appointment_db = appointment(name=name, email=email, phone=phone, doctor=doctor, message=msg)
        appointment_db.save()
    return render(request, "thanks.html", {"name": name})

models.py 模型代码

from django.db import models

# Create your models here.
class appointment(models.Model):
    count=models.AutoField(primary_key=True)
    name= models.CharField(max_length=100)
    email= models.EmailField(max_length=1000)
    phone = models.IntegerField()
    message =models.TextField(max_length=5000)
    doctor = models.CharField(max_length=100)

    def __str__(self):
        return self.name + " | "+ "Doctor : "+ self.doctor

报错信息

TypeError: appointment() got an unexpected keyword argument 'name'

错误原因

虽然模型代码里明确定义了name字段,但报错提示该参数不被识别,最常见的原因是模型修改后未执行数据库迁移操作,导致数据库中的appointment表实际没有name字段,和代码中的模型类结构不匹配。此外也需要确认views.py中导入的appointment是否是你自己定义的模型,而非其他同名类。

解决方案

  1. 生成迁移文件:在项目根目录下执行命令
python manage.py makemigrations
  1. 应用迁移到数据库:接着执行
python manage.py migrate
  1. 验证迁移结果:可以通过Django后台管理查看appointment数据是否能正常添加name字段,或者直接查看数据库表结构确认name字段存在。
  2. 检查模型导入:确保views.py顶部的导入语句正确,比如:
from .models import appointment

避免导入了其他模块的同名appointment类。

内容的提问来源于stack exchange,提问作者Abdul Moiz Shah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 17:53:13