#22911 closed Bug (duplicate)
Non-ASCII filename uploaded by user crashed Django
| Reported by: | lvella | Owned by: | nobody |
|---|---|---|---|
| Component: | Uncategorized | Version: | 1.6 |
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
I have a file field on a model editable by the admin interface. Today the tried to upload a file including the character 'ç', for what the server sent me the following message (possibly related with the fact I am using Python 3.4):
Traceback (most recent call last):
File "/home/fidelidade/fidelidade/venv/lib/python3.4/site-packages/django/core/handlers/base.py", line 114, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/fidelidade/fidelidade/venv/lib/python3.4/site-packages/django/contrib/admin/options.py", line 430, in wrapper
return self.admin_site.admin_view(view)(*args, **kwargs)
File "/home/fidelidade/fidelidade/venv/lib/python3.4/site-packages/django/utils/decorators.py", line 99, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "/home/fidelidade/fidelidade/venv/lib/python3.4/site-packages/django/views/decorators/cache.py", line 52, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "/home/fidelidade/fidelidade/venv/lib/python3.4/site-packages/django/contrib/admin/sites.py", line 198, in inner
return view(request, *args, **kwargs)
File "/home/fidelidade/fidelidade/venv/lib/python3.4/site-packages/django/utils/decorators.py", line 29, in _wrapper
return bound_func(*args, **kwargs)
File "/home/fidelidade/fidelidade/venv/lib/python3.4/site-packages/django/utils/decorators.py", line 99, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "/home/fidelidade/fidelidade/venv/lib/python3.4/site-packages/django/utils/decorators.py", line 25, in bound_func
return func(self, *args2, **kwargs2)
File "/home/fidelidade/fidelidade/venv/lib/python3.4/site-packages/django/db/transaction.py", line 339, in inner
return func(*args, **kwargs)
File "/home/fidelidade/fidelidade/venv/lib/python3.4/site-packages/django/contrib/admin/options.py", line 1228, in change_view
self.save_model(request, new_object, form, True)
File "/home/fidelidade/fidelidade/venv/lib/python3.4/site-packages/django/contrib/admin/options.py", line 858, in save_model
obj.save()
File "./company/models.py", line 53, in save
super(Company, self).save(*args, **kwargs)
File "/home/fidelidade/fidelidade/venv/lib/python3.4/site-packages/django/db/models/base.py", line 545, in save
force_update=force_update, update_fields=update_fields)
File "/home/fidelidade/fidelidade/venv/lib/python3.4/site-packages/django/db/models/base.py", line 573, in save_base
updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/home/fidelidade/fidelidade/venv/lib/python3.4/site-packages/django/db/models/base.py", line 632, in _save_table
for f in non_pks]
File "/home/fidelidade/fidelidade/venv/lib/python3.4/site-packages/django/db/models/base.py", line 632, in <listcomp>
for f in non_pks]
File "/home/fidelidade/fidelidade/venv/lib/python3.4/site-packages/django/db/models/fields/files.py", line 252, in pre_save
file.save(file.name, file, save=False)
File "/home/fidelidade/fidelidade/venv/lib/python3.4/site-packages/django/db/models/fields/files.py", line 86, in save
self.name = self.storage.save(name, content)
File "/home/fidelidade/fidelidade/venv/lib/python3.4/site-packages/django/core/files/storage.py", line 48, in save
name = self.get_available_name(name)
File "/home/fidelidade/fidelidade/venv/lib/python3.4/site-packages/django/core/files/storage.py", line 74, in get_available_name
while self.exists(name):
File "/home/fidelidade/fidelidade/venv/lib/python3.4/site-packages/django/core/files/storage.py", line 245, in exists
return os.path.exists(self.path(name))
File "/home/fidelidade/fidelidade/venv/lib/python3.4/genericpath.py", line 19, in exists
os.stat(path)
UnicodeEncodeError: 'ascii' codec can't encode character '\xe7' in position 48: ordinal not in range(128)
Note:
See TracTickets
for help on using tickets.
I believe this a duplicate of #17686 and #9696.