mirror of
https://github.com/django/django.git
synced 2025-08-04 19:08:28 +00:00
Fixed #27358 -- Added a system check to prevent FileField's upload_to from starting with a slash.
Thanks Frank Bijlsma for the initial patch.
This commit is contained in:
parent
b8a815e9df
commit
7cddd8a02e
3 changed files with 42 additions and 0 deletions
|
@ -455,6 +455,31 @@ class FileFieldTests(SimpleTestCase):
|
|||
]
|
||||
self.assertEqual(errors, expected)
|
||||
|
||||
def test_upload_to_starts_with_slash(self):
|
||||
class Model(models.Model):
|
||||
field = models.FileField(upload_to='/somewhere')
|
||||
|
||||
field = Model._meta.get_field('field')
|
||||
self.assertEqual(field.check(), [
|
||||
Error(
|
||||
"FileField's 'upload_to' argument must be a relative path, not "
|
||||
"an absolute path.",
|
||||
obj=field,
|
||||
id='fields.E202',
|
||||
hint='Remove the leading slash.',
|
||||
)
|
||||
])
|
||||
|
||||
def test_upload_to_callable_not_checked(self):
|
||||
def callable(instance, filename):
|
||||
return '/' + filename
|
||||
|
||||
class Model(models.Model):
|
||||
field = models.FileField(upload_to=callable)
|
||||
|
||||
field = Model._meta.get_field('field')
|
||||
self.assertEqual(field.check(), [])
|
||||
|
||||
|
||||
@isolate_apps('invalid_models_tests')
|
||||
class FilePathFieldTests(SimpleTestCase):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue