Opened 9 years ago
Last modified 8 years ago
#28148 closed Cleanup/optimization
behaviour change on ImageField because of django.core.validators.validate_image_file_extension — at Version 2
| Reported by: | rm_ | Owned by: | nobody | 
|---|---|---|---|
| Component: | Documentation | Version: | 1.11 | 
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Accepted | |
| Has patch: | yes | Needs documentation: | no | 
| Needs tests: | no | Patch needs improvement: | no | 
| Easy pickings: | yes | UI/UX: | no | 
Description (last modified by )
The following test code snippet stopped working after upgrading django to 1.11 from 1.10.x. The code now raises a validation error because the posted image has not a valid file extension:
class Test(TestCase):
    def test_post(self):
        img = BytesIO(IMAGE)
        data = {
            'image': img,
        }
        response = self.client.post(url, data=data)
The view takes the data and fill the following ModelForm that fails validation:
class Image(models.Model):
    image = models.ImageField(_(u'Immagine'), upload_to='image')
class ImageForm(forms.ModelForm):
    class Meta:
        model = Image
As a workaround, adding a name attribute to the BytesIO object make the code work again:
img.name = 'ciao.jpg'
Change History (2)
comment:1 by , 9 years ago
| Description: | modified (diff) | 
|---|
comment:2 by , 9 years ago
| Description: | modified (diff) | 
|---|---|
| Summary: | bahviour change on ImageField because of django.core.validators.validate_image_file_extension → behaviour change on ImageField because of django.core.validators.validate_image_file_extension | 
  Note:
 See   TracTickets
 for help on using tickets.