Benim sorum here bildirilene benzer, ancak önerilen çözüm benim için çalışmıyor. Django admin uygulaması aracılığıyla 'Testaråäö.txt' adlı bir dosya yüklemeye çalışıyorum.UnicodeEncodeError Django admin içindeki dosyaları yüklerken admin olarak ara
Django 1.3.1'i bir Debian 6 sunucusunda Gunicorn 0.13.4 ve Nginx 0.7.6.7 ile çalıştırıyorum. Veritabanı PostgreSQL 8.4.9. Diğer Unicode verileri herhangi bir sorun olmadan veritabanına kaydedilir, bu yüzden problemin dosya sistemiyle bir şekilde olması gerekir.
benim nginx.conf içinde
http {
charset utf-8;
}
kurdum. LC_ALL ve LANG, 'sv_SE.UTF-8' olarak ayarlandı. 'Locale' çalıştırmak bunu doğrular. Yerel ayarın doğru şekilde ayarlandığından emin olmak için nginx init betiğimde LC_ALL ve LANG ayarlamayı bile denedim.
Traceback (most recent call last):
File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/core/handlers/base.py", line 111, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/contrib/admin/options.py", line 307, in wrapper
return self.admin_site.admin_view(view)(*args, **kwargs)
File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/utils/decorators.py", line 93, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/views/decorators/cache.py", line 79, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/contrib/admin/sites.py", line 197, in inner
return view(request, *args, **kwargs)
File "/srv/django/letebo/app/cms/admin.py", line 81, in change_view
return super(PageAdmin, self).change_view(request, obj_id)
File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/utils/decorators.py", line 28, in _wrapper
return bound_func(*args, **kwargs)
File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/utils/decorators.py", line 93, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/utils/decorators.py", line 24, in bound_func
return func(self, *args2, **kwargs2)
File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/db/transaction.py", line 217, in inner
res = func(*args, **kwargs)
File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/contrib/admin/options.py", line 985, in change_view
self.save_formset(request, form, formset, change=True)
File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/contrib/admin/options.py", line 677, in save_formset
formset.save()
File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/forms/models.py", line 482, in save
return self.save_existing_objects(commit) + self.save_new_objects(commit)
File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/forms/models.py", line 613, in save_new_objects
self.new_objects.append(self.save_new(form, commit=commit))
File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/forms/models.py", line 717, in save_new
obj.save()
File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/db/models/base.py", line 460, in save
self.save_base(using=using, force_insert=force_insert, force_update=force_update)
File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/db/models/base.py", line 504, in save_base
self.save_base(cls=parent, origin=org, using=using)
File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/db/models/base.py", line 543, in save_base
for f in meta.local_fields if not isinstance(f, AutoField)]
File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/db/models/fields/files.py", line 255, in pre_save
file.save(file.name, file, save=False)
File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/db/models/fields/files.py", line 92, in save
self.name = self.storage.save(name, content)
File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/core/files/storage.py", line 48, in save
name = self.get_available_name(name)
File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/core/files/storage.py", line 74, in get_available_name
while self.exists(name):
File "/srv/.virtualenvs/letebo/lib/python2.6/site-packages/django/core/files/storage.py", line 218, in exists
return os.path.exists(self.path(name))
File "/srv/.virtualenvs/letebo/lib/python2.6/genericpath.py", line 18, in exists
st = os.stat(path)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 52-54: ordinal not in range(128)
GÜNCELLEME:
İşte traceback var Ben açık ayıklamaya Gunicorn çalışan çalıştı ve hiç bir sorun olmadan dosya yükleme. Sanırım bu sorunun Nginx ile olduğu anlamına geliyor. Yine de bana bakmam gereken yere atıyor.
Gunicorn:
HTTP/1.1 302 FOUND
Server: gunicorn/0.13.4
Date: Thu, 09 Feb 2012 14:50:27 GMT
Connection: close
Transfer-Encoding: chunked
Expires: Thu, 09 Feb 2012 14:50:27 GMT
Vary: Cookie
Last-Modified: Thu, 09 Feb 2012 14:50:27 GMT
Location: http://my-server.se:8000/admin/cms/page/15/
Cache-Control: max-age=0
Content-Type: text/html; charset=utf-8
Set-Cookie: messages="yada yada yada"; Path=/
Nginx: herhangi mantıklı olmadığı İşte Gunicorn ve Nginx, ham yanıt başlıkları şunlardır
HTTP/1.1 500 INTERNAL SERVER ERROR
Server: nginx/0.7.67
Date: Thu, 09 Feb 2012 14:50:57 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Vary: Cookie
500
Hiç bunun için bir düzeltme elde ettiniz? Silahçılığa nasıl başlıyorsun? – ashwoods
Üzgünüm, hayır. İstemciye, bir çözüm bulabilene kadar (başka bir sunucuya geçiş gibi görünen) unicode karakterleri kullanmaktan kaçınmamı söyledim. Silahçığı başlatmak için Amiri kullanıyorum. –
Bu bizim için de geçerli. Aynı kurulum - Django uygulamasını çalıştıran NginX, Supervisor, Gunicorn.Düzeltmek için iki saatimi harcadım, internet üzerinden her yerde tüm önerileri denemeden denedim. İnşallah, birisi sonunda bu çalışmayı elde etmenin bir yolunu bulacak. – xaralis