Hi,

Could you provide a bit more information since I tried to reproduce your
problem but I didn't manage to do it.

On Thu, Apr 12, 2012 at 7:48 PM, Rui Silva <ourc...@gmail.com> wrote:

> Hi,
>
> I was working with django 1.3.1 and oracle and i got this error:
> ORA-00918: column ambiguously defined.
> After some digging in django/db/models/sql/compiler.py i discovered
> the bug/error:
>
> My models had a definition according to django sujested naming:
>
> class SampleModel(models.Model):
>       my_custom_id = models.AutoField('ID', db_column='MY_CUSTOM_ID'
> primary_key=True)
>       field2 = models...
>
> class RelatedSampleModel(models.Model):
>       id = models.AutoField('ID', primary_key=True)
>       sample_model = models.ForeignKey(SampleModel)
>
> As it happens, when we make a query that involves select_related, the
> generated query WILL NOT create a column alias for the my_custom_id
> column and we will have something like:
>
> SELECT * FROM (
>               SELECT ROWNUM AS "_RN", "_SUB".* FROM (
>                           SELECT
>                                   "SAMPLE_MODEL"."MY_CUSTOM_ID",
>                                   "SAMPLE_MODEL"."FIELD2...",
>                                   "RELATED_SAMPLE_MODEL"."ID",
>
> "RELATED_SAMPLE_MODEL"."MY_CUSTOM_ID"
>               FROM  "REL"
>               INNER JOIN ".....)) "_SUB" WHERE ROWNUM <= 21) WHERE
> "_RN" > 0'
>
>
> The problem was the definition of the db_column in uppercase and the
> foreignkey as a regular model field, witch resulted in a lowercase
> column name in the sql generator.
> I solved this error by changing all the names to lowercase. After
> that, django correctly defined the column alias:
> "RELATED_SAMPLE_MODEL"."MY_CUSTOM_ID" as Col20
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To post to this group, send email to django-users@googlegroups.com.
> To unsubscribe from this group, send email to
> django-users+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/django-users?hl=en.
>
>


-- 
Jani Tiainen

- Well planned is half done, and a half done has been sufficient before...

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to