django - 获取 ORA-00918: column ambiguously defined 错误,从 2.0 升级到 django 3.03 后尝试打开 django 管理页面
问题描述
当我尝试打开 Django 管理页面时,出现 django.db.utils.DatabaseError: ORA-00918: column ambiguously defined 错误。这是错误:
从 exc_value 文件“/venomscribe/lib/python3.6/site-packages/django/db/backends/utils.py”,第 86 行,在 _execute 中提高 dj_exc_value.with_traceback(traceback) return self.cursor.execute(sql, params ) 文件“/venomscribe/lib/python3.6/site-packages/django/db/backends/oracle/base.py”,第 514 行,执行 return self.cursor.execute(query, self._param_generator(params)) django.db.utils.DatabaseError: ORA-00918: 列定义不明确
查询是
SELECT "DJANGO_ADMIN_LOG"."ID",
"DJANGO_ADMIN_LOG"."ACTION_TIME",
"DJANGO_ADMIN_LOG"."USER_ID",
"DJANGO_ADMIN_LOG"."CONTENT_TYPE_ID",
"DJANGO_ADMIN_LOG"."OBJECT_ID",
"DJANGO_ADMIN_LOG"."OBJECT_REPR",
"DJANGO_ADMIN_LOG"."ACTION_FLAG",
"DJANGO_ADMIN_LOG"."CHANGE_MESSAGE",
"AUTH_USER"."ID",
"AUTH_USER"."PASSWORD",
"AUTH_USER"."LAST_LOGIN",
"AUTH_USER"."IS_SUPERUSER",
"AUTH_USER"."USERNAME",
"AUTH_USER"."FIRST_NAME",
"AUTH_USER"."LAST_NAME",
"AUTH_USER"."EMAIL",
"AUTH_USER"."IS_STAFF",
"AUTH_USER"."IS_ACTIVE",
"AUTH_USER"."DATE_JOINED",
"DJANGO_CONTENT_TYPE"."ID",
"DJANGO_CONTENT_TYPE"."APP_LABEL",
"DJANGO_CONTENT_TYPE"."MODEL"
FROM "DJANGO_ADMIN_LOG"
INNER JOIN "AUTH_USER"
ON ("DJANGO_ADMIN_LOG"."USER_ID" = "AUTH_USER"."ID")
LEFT OUTER JOIN "DJANGO_CONTENT_TYPE"
ON ("DJANGO_ADMIN_LOG"."CONTENT_TYPE_ID" = "DJANGO_CONTENT_TYPE"."ID")
WHERE "DJANGO_ADMIN_LOG"."USER_ID" = :arg0
ORDER BY "DJANGO_ADMIN_LOG"."ACTION_TIME" DESC
FETCH FIRST 10 ROWS ONLY
解决方案
这是系统要求问题。我使用的是与 django 3.0.3 不兼容的 oracle 12.1。降级到 2.2 解决了这个问题。
推荐阅读
- python - 在 Juypter 的文件系统中找不到文件夹
- java - 我需要方法获取用户输入
- javascript - 重置单个表单字段的自定义有效性状态
- html - 使用 jeronimo 邮件实现发送 HTML 邮件
- google-apps-script - 使用谷歌脚本的 sendEmail() 方法发送消息正文
- c++ - 使用 typedef 有什么用,它意味着什么?
- php - (php)将持续时间更改为我的日历可用的内容
- oracle - oracle:如何在分页中选择更新?
- python - python 3.5通过IO多路复用实现协程等待的策略是什么?
- node.js - NodeJS Mongoose 抛出错误:“证书链中的自签名证书”