python - Can't save file with non-ASCII symbols in file name via Django models -
i have problem on production server. when i'm trying upload file named russian symbols, i'm getting error
unicodeencodeerror: 'ascii' codec can't encode characters in position... saving:
#... code above ... file = request.files.get('file') try: item = modelitem( model=file, title=file.name, ) item.save() # ... code below ... full traceback:
file "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 589, in save force_update=force_update, update_fields=update_fields) file "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 617, in save_base updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields) file "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 698, in _save_table result = self._do_insert(cls._base_manager, using, fields, update_pk, raw) file "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 731, in _do_insert using=using, raw=raw) file "/usr/local/lib/python2.7/dist-packages/django/db/models/manager.py", line 92, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) file "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 921, in _insert return query.get_compiler(using=using).execute_sql(return_id) file "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 919, in execute_sql sql, params in self.as_sql(): file "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 877, in as_sql obj in self.query.objs file "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/files.py", line 301, in pre_save file.save(file.name, file, save=false) file "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/files.py", line 89, in save self.name = self.storage.save(name, content) file "/usr/local/lib/python2.7/dist-packages/django/core/files/storage.py", line 50, in save name = self.get_available_name(name) file "/usr/local/lib/python2.7/dist-packages/django/core/files/storage.py", line 75, in get_available_name while self.exists(name): file "/usr/local/lib/python2.7/dist-packages/django/core/files/storage.py", line 265, in exists return os.path.exists(self.path(name)) file "/usr/lib/python2.7/genericpath.py", line 18, in exists os.stat(path) unicodeencodeerror: 'ascii' codec can't encode characters in position 31-34: ordinal not in range(128) i tried set
os.environ['lang'] = 'en_us.utf-8' when server starts with, checked out output of
locale -a and found needed locales, didn't help.
Comments
Post a Comment