﻿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
23270	select_related on fields pointing to subclasses does not work when using defer	islavov	nobody	"I have the following models
{{{
#!python
from django.db import models

class Base(models.Model):
    text = models.TextField()

class SubClassA(Base):
    name = models.CharField(max_length=32)

}}}
In shell
{{{
#!python
In [3]: from defertest.models import SubClassA, Base

# Select related + defer
In [4]: c=Base.objects.select_related(""subclassa"").defer(""text"")[0]
(0.001) SELECT ""defertest_base"".""id"", ""defertest_subclassa"".""base_ptr_id"", ""defertest_subclassa"".""name"" FROM ""defertest_base"" LEFT OUTER JOIN ""defertest_subclassa"" ON (""defertest_base"".""id"" = ""defertest_subclassa"".""base_ptr_id"") LIMIT 1; args=()

# We get an extra query when accessing the subclass
In [5]: c.subclassa
(0.000) SELECT ""defertest_base"".""id"", ""defertest_base"".""text"", ""defertest_subclassa"".""base_ptr_id"", ""defertest_subclassa"".""name"" FROM ""defertest_subclassa"" INNER JOIN ""defertest_base"" ON (""defertest_subclassa"".""base_ptr_id"" = ""defertest_base"".""id"") WHERE ""defertest_subclassa"".""base_ptr_id"" = 1 ; args=(1,)
Out[5]: <SubClassA: SubClassA object>

# If no deferred fields
In [6]: c=Base.objects.select_related(""subclassa"")[0]
(0.000) SELECT ""defertest_base"".""id"", ""defertest_base"".""text"", ""defertest_subclassa"".""base_ptr_id"", ""defertest_subclassa"".""name"" FROM ""defertest_base"" LEFT OUTER JOIN ""defertest_subclassa"" ON (""defertest_base"".""id"" = ""defertest_subclassa"".""base_ptr_id"") LIMIT 1; args=()

# select related works fine ( no extra query )
In [7]: c.subclassa
Out[7]: <SubClassA: SubClassA object>
}}}"	Bug	closed	Database layer (models, ORM)	1.7	Normal	fixed	select_related defer		Accepted	1	0	0	1	0	0
