ORA-00904: "数据表"."DEPT_CODE_ID": invalid identifier

问题:

今天在使用Django时出现一个意想不到的问题ORA-00904: "TDMS_USER"."DEPT_CODE_ID": invalid identifier,第一眼看到这个问题 TDMS 表中 DEPT_CODE_ID 标识符无效,立马去查看数据库,发现并没有 DEPT_CODE_ID这个字段 只存在 DEPT_CODE ,然后去看django目录下的model.py文件里的模型,发现只有DEPT_CODE这个字段,那为什么会莫名其妙的产生一个新的字段呢。

原因:

因为我是先在数据库建立好表,然后逆向引导出model.py模型,在django的规则中,外键会自动加上 _id 所以原来的 DEPT_CODE就变成了 DEPT_CODE_ID ,如果正常从django中建立模型文件model.py 然后迁移到数据库,数据库中会产生DEPT_CODE_ID字段而不是DEPT_CODE 。

解决方法:

    1:将数据库中 DEPT_CODE 修改为 DEPT_CODE_ID 就行了

    2:在model.py文件里指定键名:db_column='键名'

        例:org_code = models.ForeignKey(TdmsDept, models.DO_NOTHING, db_column='org_code_id', blank=True, null=True)

声明:

最后声明一遍:django 会自动将 model.py中的外键加上 _id

好的文章

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容