﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
8106	select_related queries return wrong data	soroosh@…	Malcolm Tredinnick	"select_related queries are wrong in a situation where there are two different paths to a model, for example:

{{{
from django.db import models

class User(models.Model):
    name = models.CharField(max_length=200)
    
class Person(models.Model):
    user = models.ForeignKey(""User"", unique=True)

class Organizer(models.Model):
    person = models.ForeignKey(""Person"")

class Student(models.Model):
    person = models.ForeignKey(""Person"")

class Class(models.Model):
    org = models.ForeignKey(""Organizer"")


class Enrollment(models.Model):
    std = models.ForeignKey(""Student"")
    claz = models.ForeignKey(""Class"")

}}}

The bug can be triggered with this snippet on latest SVN:
{{{
us = User(name=""std"")
us.save()
usp = Person(user=us)
usp.save()

uo = User(name=""org"")
uo.save()
uop = Person(user=uo)
uop.save()

s = Student(person = usp)
s.save()

o = Organizer(person = uop)
o.save()

c = Class(org=o)
c.save()

e = Enrollment(std=s, claz=c)
e.save()

e_related = Enrollment.objects.all().select_related()[0]
print e_related.std.person.user.name
print e_related.claz.org.person.user.name
}}}
output is ""std"" for both, but it should be 
{{{
std
org
}}}"		closed	Database layer (models, ORM)	dev		fixed		reza@…	Accepted	0	0	0	0	0	0
