UnicodeDecodeError: 'ascii' codec kann nicht decodieren byte 0xcb in position 0: ordinal not in range(128) bei der Verwendung von tastypie
Ich die Prüfung tastypie 1.9 mit Django 1.4 erstellen Sie eine einfache REST-API für meine website. Ich bin nach der ersten Schritte in der Dokumentation, wo ich steckengeblieben.
Ich bin mit Django Global, und nicht mit virtualenv für diese spezifische Implementierung. Es sagt im browser A server error occurred. Please contact the administrator.
. Ich bin mit dieser in django-server.
Dies ist die Fehlermeldung, die kommt im terminal, wenn ich versuche, auf http://127.0.0.1:8000/api/sessionuserround/?format=json
[20/Jun/2013 10:26:19] "GET /api/sessionuserround/?format=json HTTP/1.1" 500 99752
Traceback (most recent call last):
File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py", line 85, in run
self.result = application(self.environ, self.start_response)
File "/usr/local/lib/python2.7/site-packages/django/contrib/staticfiles/handlers.py", line 67, in __call__
return self.application(environ, start_response)
File "/usr/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 241, in __call__
response = self.get_response(request)
File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 146, in get_response
response = debug.technical_404_response(request, e)
File "/usr/local/lib/python2.7/site-packages/django/views/debug.py", line 443, in technical_404_response
'reason': smart_str(exception, errors='replace'),
File "/usr/local/lib/python2.7/site-packages/django/utils/encoding.py", line 116, in smart_str
return str(s)
File "/usr/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 235, in __repr__
return smart_str(u'<%s %s (%s:%s) %s>' % (self.__class__.__name__, self.urlconf_name, self.app_name, self.namespace, self.regex.pattern))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xcb in position 0: ordinal not in range(128)
[20/Jun/2013 10:26:40] "GET /api/sessionuserround/?format=json HTTP/1.1" 500 59
Traceback (most recent call last):
File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py", line 85, in run
self.result = application(self.environ, self.start_response)
File "/usr/local/lib/python2.7/site-packages/django/contrib/staticfiles/handlers.py", line 67, in __call__
return self.application(environ, start_response)
File "/usr/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 241, in __call__
response = self.get_response(request)
File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 146, in get_response
response = debug.technical_404_response(request, e)
File "/usr/local/lib/python2.7/site-packages/django/views/debug.py", line 443, in technical_404_response
'reason': smart_str(exception, errors='replace'),
File "/usr/local/lib/python2.7/site-packages/django/utils/encoding.py", line 116, in smart_str
return str(s)
File "/usr/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 235, in __repr__
return smart_str(u'<%s %s (%s:%s) %s>' % (self.__class__.__name__, self.urlconf_name, self.app_name, self.namespace, self.regex.pattern))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xcb in position 0: ordinal not in range(128)
Diese sind meine zugehörigen Dateien:
api.py welche gibt es in sal (name meiner app):
from tastypie.resources import ModelResource
from sal.models import SessionUserRoundMap
class SessionUserRoundResource(ModelResource):
class Meta:
queryset = SessionUserRoundMap.objects.all()
Hier urls.py:
from django.conf.urls.defaults import *
from sal.api import SessionUserRoundResource
sessionuserround_resource = SessionUserRoundResource
urlpatterns = patterns('',
(r'ˆapi/', include(sessionuserround_resource.urls)),
)
Jeweiligen code in models.py:
class SessionRoundMap(models.Model):
session_id = models.ForeignKey(Session)
num_of_rounds = models.IntegerField()
def __unicode(self):
text = "Session ID: " + str(self.session_id)
return text
class SessionUserRoundMap(models.Model):
user_id = models.ForeignKey(BssUser)
session_id = models.ForeignKey(Session)
round_no = models.IntegerField()
def __unicode__(self):
return self.user_id + ' ' + self.session_id + ' ' + round_no
Jeweiligen code in settings.py:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
# 'django.contrib.admin',
'admin',
'tastypie',
)
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
# Uncomment the next line for simple clickjacking protection:
# 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
Recht jetzt mein views.py ist leer.
Hier requirements.txt:
Django==1.4.5
defusedxml==0.4.1
distribute==0.6.40
django-tastypie==0.9.15
dulwich==0.9.0
hg-git==0.4.0
lxml==3.2.1
mercurial==2.6.2
mimeparse==0.1.3
python-dateutil==1.5
python-mimeparse==0.1.4
vboxapi==1.0
virtualenv==1.9.1
wsgiref==0.1.2
Wie kann ich dieses problem lösen? Bitte um Hilfe!!
InformationsquelleAutor Forbidden Overseer | 2013-06-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
War der Fehler kommen, weil einige Modelle in meine Modelle waren nicht der Rückgabe einer korrekten unicode-kodierte Antwort, wenn instanziiert wird.
War dies, weil ein Tippfehler in meinem models.py:
Sollte es gewesen sein dies:
Die unicode-Methode war nicht richtig geschrieben, was war die Ursache dieses Fehlers.
Schauen Sie genau auf die unicode-Methode definition... die Unterstriche...
InformationsquelleAutor Forbidden Overseer
Bekam ich diese Fehlermeldung nach dem hinzufügen von translation zu meiner Website mit dem ugettext Helfer also
Also nichts mit nicht-ascii-text werfen würde dieser Fehler, also Akzente
Angabe der string unicode ist, indem die u um es fest:
InformationsquelleAutor radtek
Irgendwo in der Datenbank, die Sie haben seltsame Platte, die enthält einige nicht-ascii-code.
Versuchen zu schreiben, die Ihre Unterlagen, zum Beispiel:
Wenn der Fehler weiterhin auftreten, versuchen Sie diese Funktion zu verwenden:
InformationsquelleAutor Silwest
hinzuzufügen zu den Antworten oben:
ein weiterer Grund, warum dies passieren könnte, ist, wenn Sie über einen HTTP-server laufen und gebeten für eine https-Verbindung.
InformationsquelleAutor srj