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

Django模型类无法识别属性及数据库字段缺失问题求助

问题解决步骤

1. 修正模型字段定义方式

Django模型字段必须通过赋值语句定义,不能用类型注解(:)。你最初的错误就是因为用了类型注解,Django没有将content、deadline等识别为模型字段,导致实例没有这些属性。

正确的模型写法如下:

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) -> str:
        return f"{self.id} {self.content}"

说明:去掉了字段名后的类型注解(: str、: int),改用=直接赋值模型字段;__str__方法用f-string优化了拼接逻辑。

2. 同步数据库迁移

修改模型后,数据库表结构不会自动更新,这是你第二次出现错误的核心原因。执行以下命令同步结构:

  1. 生成迁移文件(指定app名称为api):
python manage.py makemigrations api
  1. 执行迁移操作,更新数据库表:
python manage.py migrate api

3. 验证结果

重新运行代码,执行print(Task.objects.all())即可正常显示包含id和content的任务实例。

内容的提问来源于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 03:16:03