#31264: ORA-00918: column ambiguously defined django admin.
-------------------------------------+-------------------------------------
Reporter: Daniel Trizna | Owner: nobody
Type: Bug | Status: closed
Component: Database layer | Version: 3.0
(models, ORM) |
Severity: Normal | Resolution: needsinfo
Keywords: oracle, django | Triage Stage:
admin | Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Daniel Trizna):
I am affraid that i can not provide you with the project i am working on
but i replicated when i started a new project and replaced the database
dictionary with my custom dictionary like this:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.oracle',
'NAME': "VALID NAME",
'USER': "username",
'PASSWORD': "password",
}
}
when i use 'django_sqlprint_middleware.SqlPrintMiddleware' plugin i am
able to get the sql querry that the django admin is executing.
in django 2.* the querry was :
QUERY = 'SELECT * FROM (SELECT "_SUB".* FROM (SELECT
"DJANGO_ADMIN_LOG"."ID" AS Col1, "DJANGO_ADMIN_LOG"."ACTION_TIME" AS Col2,
"DJANGO_ADMIN_LOG"."USER_ID" AS Col3, "DJANGO_ADMIN_LOG"."CONTENT_TYPE_ID"
AS Col4, "DJANGO_ADMIN_LOG"."OBJECT_ID" AS Col5,
"DJANGO_ADMIN_LOG"."OBJECT_REPR" AS Col6, "DJANGO_ADMIN_LOG"."ACTION_FLAG"
AS Col7, "DJANGO_ADMIN_LOG"."CHANGE_MESSAGE" AS Col8, "AUTH_USER"."ID" AS
Col9, "AUTH_USER"."PASSWORD" AS Col10, "AUTH_USER"."LAST_LOGIN" AS Col11,
"AUTH_USER"."IS_SUPERUSER" AS Col12, "AUTH_USER"."USERNAME" AS Col13,
"AUTH_USER"."FIRST_NAME" AS Col14, "AUTH_USER"."LAST_NAME" AS Col15,
"AUTH_USER"."EMAIL" AS Col16, "AUTH_USER"."IS_STAFF" AS Col17,
"AUTH_USER"."IS_ACTIVE" AS Col18, "AUTH_USER"."DATE_JOINED" AS Col19,
"DJANGO_CONTENT_TYPE"."ID" AS Col20, "DJANGO_CONTENT_TYPE"."APP_LABEL" AS
Col21, "DJANGO_CONTENT_TYPE"."MODEL" AS Col22 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) "_SUB" WHERE ROWNUM <= 10)' -
PARAMS = (1,)
where all columns have their aliases.
In django 3 the querry is as follows :
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" = 1 ORDER BY
"DJANGO_ADMIN_LOG"."ACTION_TIME" DESC FETCH FIRST 10 ROWS ONLY
the columns does not have aliases and as a result there are 3 columns
named id which causes the problem
--
Ticket URL: <https://code.djangoproject.com/ticket/31264#comment:2>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/064.9bc485598e53442084f26a1607945213%40djangoproject.com.