mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Fixed #21042 -- Allowed accessing FileDescriptor on the model class.
This is consistent with ability to reference other descriptors
on the model class (5ef0c03ae9).
			
			
This commit is contained in:
		| @@ -157,9 +157,7 @@ class FileDescriptor(object): | ||||
|  | ||||
|     def __get__(self, instance=None, owner=None): | ||||
|         if instance is None: | ||||
|             raise AttributeError( | ||||
|                 "The '%s' attribute can only be accessed from %s instances." | ||||
|                 % (self.field.name, owner.__name__)) | ||||
|             return self | ||||
|  | ||||
|         # This is slightly complicated, so worth an explanation. | ||||
|         # instance.file`needs to ultimately return some instance of `File`, | ||||
|   | ||||
| @@ -18,6 +18,7 @@ from django.core.files.storage import FileSystemStorage, get_storage_class | ||||
| from django.core.files.uploadedfile import ( | ||||
|     InMemoryUploadedFile, SimpleUploadedFile, TemporaryUploadedFile, | ||||
| ) | ||||
| from django.db.models.fields.files import FileDescriptor | ||||
| from django.test import ( | ||||
|     LiveServerTestCase, SimpleTestCase, TestCase, override_settings, | ||||
| ) | ||||
| @@ -447,9 +448,7 @@ class FileFieldStorageTests(TestCase): | ||||
|             return 255  # Should be safe on most backends | ||||
|  | ||||
|     def test_files(self): | ||||
|         # Attempting to access a FileField from the class raises a descriptive | ||||
|         # error | ||||
|         self.assertRaises(AttributeError, lambda: Storage.normal) | ||||
|         self.assertIsInstance(Storage.normal, FileDescriptor) | ||||
|  | ||||
|         # An object without a file has limited functionality. | ||||
|         obj1 = Storage() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user