Loading django/db/models/fields/files.py +2 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,8 @@ class FieldFile(File): save.alters_data = True def delete(self, save=True): if not self: return # Only close the file if it's already open, which we know by the # presence of self._file if hasattr(self, '_file'): Loading tests/model_fields/tests.py +11 −0 Original line number Diff line number Diff line Loading @@ -432,6 +432,17 @@ class FileFieldTests(unittest.TestCase): field.save_form_data(d, 'else.txt') self.assertEqual(d.myfile, 'else.txt') def test_delete_when_file_unset(self): """ Calling delete on an unset FileField should not call the file deletion process, but fail silently (#20660). """ d = Document() try: d.myfile.delete() except OSError: self.fail("Deleting an unset FileField should not raise OSError.") class BinaryFieldTests(test.TestCase): binary_data = b'\x00\x46\xFE' Loading Loading
django/db/models/fields/files.py +2 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,8 @@ class FieldFile(File): save.alters_data = True def delete(self, save=True): if not self: return # Only close the file if it's already open, which we know by the # presence of self._file if hasattr(self, '_file'): Loading
tests/model_fields/tests.py +11 −0 Original line number Diff line number Diff line Loading @@ -432,6 +432,17 @@ class FileFieldTests(unittest.TestCase): field.save_form_data(d, 'else.txt') self.assertEqual(d.myfile, 'else.txt') def test_delete_when_file_unset(self): """ Calling delete on an unset FileField should not call the file deletion process, but fail silently (#20660). """ d = Document() try: d.myfile.delete() except OSError: self.fail("Deleting an unset FileField should not raise OSError.") class BinaryFieldTests(test.TestCase): binary_data = b'\x00\x46\xFE' Loading