[Python] Django FileField problem with polish/non-english letters

[Python] Django FileField problem with polish/non-english letters

I’ve created a Django model using FileField:

class Car(models.Model):
    ...
    car = models.FileField(upload_to='upl/%Y/%m/%d')
    ...

I wanted to upload files named using polish characters (for example: “auto-żółw”). Unfortunately,  Django erease polish letters (“auto-żółw” -> “auto-w”).

I’ve find out that the problem is in django.utils.text.get_valid_filename function.
After I’ve changed line:

return re.sub(r'[^-A-Za-z0-9_.]', '', s)

to

return re.sub('(?u)[^-.\w]', '', s)

Django accepts polish letters, too.

Leave a Reply

Your email address will not be published. Required fields are marked *