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

好的文章

    原文作者:不爱去冒险的少年y
    原文地址: https://www.jianshu.com/p/53f18d9d8da7
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞