﻿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
30427	Descriptors not accessible for inherited models.	Jarek Glowacki	Carlton Gibson	"Example:
{{{
class Base(models.Model):
    A = 1


class Inherited(Base):
    A = models.IntegerField(default=0)
    B = models.IntegerField(default=0)
}}}
And now take a look at this:
{{{
>>> Inherited.A
1
>>> Inherited.B
<django.db.models.query_utils.DeferredAttribute object at 0x110ed5470>
}}}

Descriptor `A` is not accessible.
Behaviour is correct when accessing instance attributes, which is why I think this has gone under the radar..

Real use case:
We try to apply a `FieldTracker` (from Django Model Utils) onto a custom user model:
{{{
class User(AbstractBaseUser):
    is_active = models.BooleanField(_('active'), default=True)

    tracker = FieldTracker()
}}}

FieldTracker falls over wrapping the `is_active` field, because instead of getting a `DeferredAttribute` when accessing `User.is_active`, it gets a mouthful of `True`, which is the value assigned to `is_active` in `AbstractBaseUser`.

Happy to submit a failing test and propose a fix if issue is accepted.
Issue replicated on Django2.1.5, but I suspect it's like this on master still.."	Bug	closed	Database layer (models, ORM)	dev	Normal	fixed	inherited descriptor deferred	Hongtao Ma	Ready for checkin	1	0	0	0	0	0
