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

Django serializer.save()返回HTTP 500错误的解决方法

Django订单系统serializer.save()报500错误:order_order表无paid_amount字段解决方法

问题原因

你在models.py的Order模型中定义了paid_amount字段,但该字段并未同步到数据库的order_order表中,导致执行serializer.save()时数据库找不到对应字段,抛出500错误。

解决步骤

1. 生成迁移文件

在项目根目录下执行命令,为order应用生成字段变更的迁移文件:

python manage.py makemigrations order

该命令会自动检测模型的变更,生成对应的数据表结构修改脚本。

2. 执行数据库迁移

运行迁移命令,将模型变更同步到数据库:

python manage.py migrate

执行完成后,order_order表会新增paid_amount字段,即可正常保存数据。

迁移异常处理(可选)

如果执行迁移时出现报错,可按以下步骤排查:

  • 确认order应用已添加到settings.py的INSTALLED_APPS列表中
  • 若存在未应用的历史迁移,先执行python manage.py migrate应用所有待处理迁移
  • 若迁移历史混乱,可删除order/migrations目录下除__init__.py外的所有文件,再重新生成并执行迁移

代码逻辑说明

你的序列化器和视图代码本身没有问题,serializer.save(user=request.user, paid_amount=paid_amount)的传参方式符合DRF规范,问题仅出在数据库表结构未同步模型的字段变更。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 05:06:35