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

Django 1.10出现User未知字段错误,跨环境运行异常求助

解决Django中User模型未知字段的FieldError问题

看起来你这问题挺闹心的——同一套代码在另一台机器跑完全正常,本地却报User模型找不到country、name、instituicao字段的错误,而且删库重装依赖都没用。结合你描述的场景(从正常机器导库后本地出问题,切回本地库也报错),大概率是本地环境的模型定义、配置或者迁移缓存出了问题,给你几个针对性的排查步骤:

1. 先确认自定义User模型的配置是否正确

首先回忆下你的项目是不是用了自定义User模型(毕竟Django默认User模型没有这几个字段)。去settings.py里找AUTH_USER_MODEL这个配置项,看看是不是准确指向了你的自定义模型(比如accounts.CustomUser)。

  • 对比另一台机器的settings.py,确保这个配置完全一致,别是本地改了配置自己忘了。
  • 如果没配置AUTH_USER_MODEL,那说明你可能直接修改了默认User模型?这可是Django的大忌,赶紧改回自定义模型的方式。

2. 清理Django的缓存和旧迁移文件

Django有时候会缓存旧的模型结构,哪怕你改了模型也可能没生效,试试这几步:

  • 先清理Django缓存:
    python manage.py clearcache
    
    (Django 1.10本身没有clearcache命令的话,直接手动删除项目里所有__pycache__目录,还有*.pyc文件)
  • 然后删除每个app下migrations文件夹里除了__init__.py之外的所有迁移文件,接着登录PostgreSQL删除django_migrations表:
    DROP TABLE django_migrations;
    
  • 最后重新生成迁移并应用:
    python manage.py makemigrations
    python manage.py migrate
    

3. 核对本地模型定义与代码仓库的一致性

虽然用了GitHub版本控制,但难保本地有没有未提交的修改。去自定义User模型所在的models.py文件里,确认country、name、instituicao这几个字段确实存在,并且和仓库里的版本一致。

  • 用git命令对比一下:
    git diff your_app/models.py
    
    要是有本地修改,要么提交要么回滚到仓库版本。

4. 确认数据库连接没搞错

有时候会不小心连到其他环境的数据库,导致本地代码和数据库结构不匹配。检查settings.py里的DATABASES配置,确保指向的是本地的PostgreSQL数据库,而不是其他机器的库。

  • 可以临时换个新的数据库名称测试:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': 'temp_test_db',
            'USER': 'your_db_user',
            'PASSWORD': 'your_db_pwd',
            'HOST': 'localhost',
            'PORT': '',
        }
    }
    
    然后用PostgreSQL命令创建新库:
    createdb temp_test_db
    
    再重新迁移,看看还会不会报错。

5. 确保依赖版本完全一致

哪怕重装了pip依赖,也可能版本和另一台机器不一样。去正常机器上导出依赖列表:

pip freeze > requirements.txt

然后把这个文件拷到本地,在虚拟环境里安装完全相同的版本:

pip install -r requirements.txt

重点确认Django版本(你用的1.10)和psycopg2的版本,这俩最容易出问题。

如果以上步骤都试过还是不行,再检查下INSTALLED_APPS里有没有包含自定义User模型所在的app,而且app的顺序也别搞反了——有时候app加载顺序不对也会导致模型识别异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:26:50