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

Django模型未读取指定表名,返回项目名问题求助

问题原因及解决办法

你的问题核心是模型内的Meta类缩进错误,导致Django没有识别到自定义的表名配置,转而使用默认规则生成表名(应用名_模型名小写)。

错误代码的问题点

你当前的Meta类和__str__方法都没有作为Plans类的内部成员存在,而是和Plans同级:

class Plans(models.Model):
    PROJECT_NAME = models.TextField()

class Meta:  # 缩进错误,不属于Plans类的内部类
    db_table = 'schema.table'
    managed = False

def __str__(self):  # 缩进错误,不属于Plans类的方法
    return self.PROJECT_NAME

修正后的代码

将Meta类和__str__方法缩进,放到Plans类内部:

class Plans(models.Model):
    PROJECT_NAME = models.TextField()

    class Meta:  # 正确缩进,作为Plans的内部类
        db_table = 'schema.table'  # 指定schema和表名
        managed = False  # 禁止Django管理表结构

    def __str__(self):  # 正确缩进,作为Plans的方法
        return self.PROJECT_NAME

验证方法

重新进入Django shell测试(注意应用名是compareTemplates,和目录名一致):

python manage.py shell
from compareTemplates.models import Plans
print(Plans._meta.db_table)

此时应该会输出你预期的schema.table。

额外检查点

  1. 确认应用compareTemplates已在settings.py的INSTALLED_APPS中注册:
INSTALLED_APPS = [
    # ...其他默认应用
    'compareTemplates',
]
  1. 确保导入模型时的应用名拼写准确,和目录名称完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 09:35:54