1
0
mirror of https://github.com/django/django.git synced 2025-10-31 09:41:08 +00:00

[5.1.x] Fixed #35657 -- Made FileField handle db_default values.

Backport of 8deb6bb1fc from main.
This commit is contained in:
Sarah Boyce
2024-08-05 21:36:49 +02:00
committed by Natalia
parent aed4ffe189
commit 2ba4f4b0b5
4 changed files with 27 additions and 0 deletions

View File

@@ -72,6 +72,9 @@ class Storage(models.Model):
default = models.FileField(
storage=temp_storage, upload_to="tests", default="tests/default.txt"
)
db_default = models.FileField(
storage=temp_storage, upload_to="tests", db_default="tests/db_default.txt"
)
empty = models.FileField(storage=temp_storage)
limited_length = models.FileField(
storage=temp_storage, upload_to="tests", max_length=20

View File

@@ -944,6 +944,20 @@ class FileFieldStorageTests(TestCase):
self.assertEqual(obj.default.read(), b"default content")
obj.default.close()
def test_filefield_db_default(self):
temp_storage.save("tests/db_default.txt", ContentFile("default content"))
obj = Storage.objects.create()
self.assertEqual(obj.db_default.name, "tests/db_default.txt")
self.assertEqual(obj.db_default.read(), b"default content")
obj.db_default.close()
# File is not deleted, even if there are no more objects using it.
obj.delete()
s = Storage()
self.assertEqual(s.db_default.name, "tests/db_default.txt")
self.assertEqual(s.db_default.read(), b"default content")
s.db_default.close()
def test_empty_upload_to(self):
# upload_to can be empty, meaning it does not use subdirectory.
obj = Storage()