Fixed #25547 -- Made Model.refresh_from_db() update FileField's instance.

This commit is contained in:
Attila Tovt 2015-12-05 03:14:46 +02:00 committed by Tim Graham
parent f5af68ba68
commit 6f229048dd
2 changed files with 9 additions and 0 deletions

View File

@ -202,6 +202,10 @@ class FileDescriptor(object):
file.field = self.field
file.storage = self.field.storage
# Make sure that the instance is correct.
elif isinstance(file, FieldFile) and instance is not file.instance:
file.instance = instance
# That was fun, wasn't it?
return instance.__dict__[self.field.name]

View File

@ -792,6 +792,11 @@ class FileFieldTests(unittest.TestCase):
except OSError:
self.fail("Deleting an unset FileField should not raise OSError.")
def test_refresh_from_db(self):
d = Document.objects.create(myfile='something.txt')
d.refresh_from_db()
self.assertIs(d.myfile.instance, d)
class BinaryFieldTests(test.TestCase):
binary_data = b'\x00\x46\xFE'