首页 > 解决方案 > 获取 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

标签: djangooracle

解决方案


这是系统要求问题。我使用的是与 django 3.0.3 不兼容的 oracle 12.1。降级到 2.2 解决了这个问题。


推荐阅读