From 1a9bd75bfa96b6dbd772b740b1f3fb14153bd986 Mon Sep 17 00:00:00 2001 From: Lex Berezhny Date: Wed, 30 Nov 2016 09:11:44 -0500 Subject: [PATCH] Refs #27358 -- Fixed system check crash with an empty FileField.upload_to. --- django/db/models/fields/files.py | 2 +- tests/invalid_models_tests/test_ordinary_fields.py | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/django/db/models/fields/files.py b/django/db/models/fields/files.py index 53a31c3ed6..e877fc7ef4 100644 --- a/django/db/models/fields/files.py +++ b/django/db/models/fields/files.py @@ -256,7 +256,7 @@ class FileField(Field): return [] def _check_upload_to(self): - if isinstance(self.upload_to, six.string_types) and self.upload_to[0] == '/': + if isinstance(self.upload_to, six.string_types) and self.upload_to.startswith('/'): return [ checks.Error( "%s's 'upload_to' argument must be a relative path, not an " diff --git a/tests/invalid_models_tests/test_ordinary_fields.py b/tests/invalid_models_tests/test_ordinary_fields.py index c005fe9331..4d4fd3039f 100644 --- a/tests/invalid_models_tests/test_ordinary_fields.py +++ b/tests/invalid_models_tests/test_ordinary_fields.py @@ -431,6 +431,12 @@ class DecimalFieldTests(SimpleTestCase): @isolate_apps('invalid_models_tests') class FileFieldTests(SimpleTestCase): + def test_valid_default_case(self): + class Model(models.Model): + field = models.FileField() + + self.assertEqual(Model._meta.get_field('field').check(), []) + def test_valid_case(self): class Model(models.Model): field = models.FileField(upload_to='somewhere')