Django报错:提交数据至模型数据库时出现ProgrammingError,password1列不存在
错误详情
访问路径 /admin/formRegister/formregister/ 时触发ProgrammingError错误,提示:
column formRegister_formregister.password1 does not exist
LINE 1: ...astname", "formRegister_formregister"."username", "formRegis...
^
- 请求方法:GET
- 请求地址:http://localhost:8000/admin/formRegister/formregister/
- Django版本:4.0.5
- 异常类型:ProgrammingError
- 异常发生位置:
C:\Users\hp\Desktop\Django\django3.9\lib\site-packages\django\db\backends\utils.py,第89行,_execute方法 - Python可执行文件:
C:\Users\hp\Desktop\Django\django3.9\Scripts\python.exe - Python版本:3.9.13
- Python路径:
C:\Users\hp\Desktop\Django\teluskoaC:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\python39.zipC:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\DLLsC:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\libC:\Users\hp\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0C:\Users\hp\Desktop\Django\django3.9C:\Users\hp\Desktop\Django\django3.9\lib\site-packages
- 服务器时间:2022年8月11日 周四 16:02:26 +0000
解决方法
- 检查模型与表单匹配:
password1是表单验证用的临时字段(比如UserCreationForm里的密码确认字段),不需要加到数据库模型中。确保你的formRegister_formregister模型只定义了存储加密密码的password字段,而非password1。 - 修正Admin配置:如果在
admin.py注册模型时,错误地将password1加入了list_display、fields等配置项,立即移除这些配置,Admin会尝试从数据库读取该字段导致报错。 - 同步数据库结构:若最近修改过模型字段,执行以下命令同步数据库:
python manage.py makemigrations python manage.py migrate - 检查表单逻辑:如果用了自定义注册表单,确保
save()方法正确处理密码——将password1加密后存入模型的password字段,而非直接写入password1到数据库。
内容的提问来源于stack exchange,提问作者Msmaje
相关产品推荐
相关产品推荐

