diff options
author | Claude Paroz <claude@2xlibre.net> | 2012-06-26 11:14:23 +0200 |
---|---|---|
committer | Claude Paroz <claude@2xlibre.net> | 2012-06-26 18:18:44 +0200 |
commit | 05d333ba3bb16af024c11966d2072de38fe9f82f (patch) | |
tree | a8fae7de201c3e257cf952187653a5f7b26a76ea /django/db/models/fields/files.py | |
parent | b6c356b7bb97f3d6d4831b31e67868313bbbc090 (diff) | |
download | django-05d333ba3bb16af024c11966d2072de38fe9f82f.tar.gz |
Fixed #18515 -- Conditionally regenerated filename in FileField validation
When a FileField value has been saved, a new validation should not
regenerate a new filename when checking the length. Refs #9893.
Diffstat (limited to 'django/db/models/fields/files.py')
-rw-r--r-- | django/db/models/fields/files.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/django/db/models/fields/files.py b/django/db/models/fields/files.py index e0c095974d..b0dce381a6 100644 --- a/django/db/models/fields/files.py +++ b/django/db/models/fields/files.py @@ -242,7 +242,11 @@ class FileField(Field): # (ie. upload_to='path/to/upload/dir'), the length of the generated # name equals the length of the uploaded name plus a constant. Thus # we can tell the user how much shorter the name should be (roughly). - length = len(self.generate_filename(model_instance, value.name)) + if value and value._committed: + filename = value.name + else: + filename = self.generate_filename(model_instance, value.name) + length = len(filename) if self.max_length and length > self.max_length: error_values = {'extra': length - self.max_length} raise ValidationError(self.error_messages['max_length'] % error_values) |