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

执行Django命令时api_task.content列缺失错误求助

解决 django.db.utils.OperationalError: no such column: api_task.content 问题

问题排查与修复步骤

1. 修正模型字段的写法问题

你的Task模型给字段添加了Python类型注解(如id: str = models.UUIDField(...)),部分Django版本无法正确识别这种写法,会导致migrations生成异常,进而数据库字段无法正常创建。

修改模型代码,移除字段的类型注解:

import uuid
from django.db import models
from django.contrib.auth.models import User


class Task(models.Model):
    id = models.UUIDField(
        unique=True,
        auto_created=True,
        primary_key=True,
        default=uuid.uuid4,
        editable=False,
    )
    content = models.CharField(
        default="",
        max_length=255,
    )
    deadline = models.IntegerField(
        default=None,
        null=True,
        blank=True,
    )
    creationDate = models.DateField(auto_now_add=True)
    author = models.ForeignKey(User, on_delete=models.CASCADE)

    def __str__(self):
        return str(self.id) + str(self.content)

2. 彻底清理残留的migrations文件

  • 确认删除的是api app下的migrations文件夹,不要误删项目其他位置的migrations文件
  • 同步删除该app下__pycache__目录里的缓存文件,避免旧配置残留
  • 若其他app存在关联Task模型的migrations文件,也需一并清理

3. 重新执行数据库初始化命令

按以下顺序执行命令:

# 确保数据库文件已删除,未删除则先执行
rm db.sqlite3
# 指定api app生成migrations文件
./manage.py makemigrations api
# 同步migrations到数据库
./manage.py migrate
# 启动服务
./manage.py runserver

注意:指定api app执行makemigrations,避免Django忽略该app的模型变更

4. 验证Django配置

检查项目settings.py的INSTALLED_APPS中是否已正确添加api app:

# settings.py
INSTALLED_APPS = [
    # 其他默认app
    'api',
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 05:32:09