Defer FileFields causes errors when accessing them
The problem is in FileDescriptor.__get__()
. That method obtains the file directly from instance.__dict__
but, from Django 1.10, deferred fields don't create any item in instance.__dict__
, so a KeyError is raised.
Moreover, ImageFields access the file each time a model is instantiated to update dimension fields, so a KeyError is raised whenever an instance with a deferred ImageField is created.
The obvious solution is change file = instance.__dict__[self.field.name]
for file = instance.__dict__.get(self.field.name)
inside of FileDescriptor.__get__()
but I am not sure about the consequences.
Change History
(9)
Triage Stage: |
Unreviewed → Accepted
|
Triage Stage: |
Accepted → Ready for checkin
|
Patch needs improvement: |
set
|
Triage Stage: |
Ready for checkin → Accepted
|
Patch needs improvement: |
unset
|
Resolution: |
→ fixed
|
Status: |
new → closed
|
A regression test for Django's test suite