﻿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
21042	Sphinx's autodoc fails to handle FileField due to FileDescriptor implementation	Benoît Bryon	nobody	"I was reading code to understand why Sphinx's autodoc fails to handle some model attributes such as FileField. See https://bitbucket.org/birkenfeld/sphinx/issue/1254/autodoc-fails-to-handle-descriptors-with for details...

... then I wondered why SingleRelatedObjectDescriptor.__get__() returns self if instance is None whereas FileDescriptor.__get__() raises AttributeError().

I guess they should have the same behaviour. But I'm not sure since I do not know the reason why they differ...

As I understand [http://docs.python.org/2/reference/datamodel.html#object.__get__], raising AttributeError is a feature.

But as mentioned in https://github.com/deschler/django-modeltranslation/pull/131, returning self could be a solution to get autodoc work (but isn't it a hack?).

Notes and references:

* SingleRelatedObjectDescriptor's implementation: https://github.com/django/django/blob/c7d0ff0cad24dbf444f2e4b534377c3352c7aa98/django/db/models/fields/related.py#L182
* FileDescriptor's implementation: https://github.com/django/django/blob/31e6d58d46894ca35080b4eab7967e4c6aae82d4/django/db/models/fields/files.py#L157
* Creator (and thus many custom fields, including third-party such as django-uuidfield) is also affected: https://github.com/django/django/blob/03d9566e0df45c72bffa99fe244a92f0279da56f/django/db/models/fields/subclassing.py#L33"	Bug	closed	Database layer (models, ORM)	1.5	Normal	fixed		bmispelon@… jm.barbier+djangocode@…	Ready for checkin	1	0	0	0	0	0
