Webapp2 get_user_by_password wirft TypeError: cannot concatenate 'str' and 'NoneType' - Objekte
Ich bin neu webapp2. Ich habe versucht, eine benutzerdefinierte Modell-compilant mit Authentifizierung-system.
Aber jedes mal, wenn mein Programm ruft get_user_by_password es wirft einen TypeError: cannot concatenate 'str' and 'NoneType' - Objekte.
Ich habe versucht, selbst zu laufen, jemand elses Anwendungen mit custom-Modelle und es wird nicht funktionieren weder.
Zum Beispiel bekomme ich den gleichen Fehler mit diesem Projekt https://gist.github.com/jgeewax/2942374.
Traceback (most recent call last):
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1535, in __call__
rv = self.handle_exception(request, response, e)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1529, in __call__
rv = self.router.dispatch(request, response)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1278, in default_dispatcher
return route.handler_adapter(request, response)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1102, in __call__
return handler.dispatch()
File "D:\STUDIA\Semestr 10\Praca Magisterska\Projekty\test\main.py", line 83, in dispatch
response = super(BaseHandler, self).dispatch()
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 572, in dispatch
return self.handle_exception(e, self.app.debug)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 570, in dispatch
return method(*args, **kwargs)
File "D:\STUDIA\Semestr 10\Praca Magisterska\Projekty\test\main.py", line 141, in post
self.auth.get_user_by_password(username, password)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2_extras\auth.py", line 459, in get_user_by_password
silent=silent)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2_extras\auth.py", line 278, in validate_password
return self.get_user_by_auth_password(auth_id, password, silent=silent)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2_extras\auth.py", line 151, in get_user_by_auth_password
return self.user_to_dict(user)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2_extras\auth.py", line 207, in user_to_dict
user_dict = dict((a, getattr(user, a)) for a in self.user_attributes)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2_extras\auth.py", line 207, in <genexpr>
user_dict = dict((a, getattr(user, a)) for a in self.user_attributes)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\db\__init__.py", line 604, in __get__
return getattr(model_instance, self._attr_name())
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\db\__init__.py", line 752, in _attr_name
return '_' + self.name
TypeError: cannot concatenate 'str' and 'NoneType' objects
mehr als wahrscheinlich, einen Anruf zu
dict.get
dass wieder Keiner, was sollte selbst.name?
InformationsquelleAutor user3124016 | 2014-06-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Fehler erläutert, die Sie ausführen können string-Verkettung ein string (
'_'
) und ein Objekt, das Wert istNone
. Es bedeutet an dieser Stelleself.name
istNone
, so dass Sie brauchen, um zu verfolgen, woself.name
definiert wird, und wenn Sie speichern, wird der Wert korrektWenn Sie trotzdem möchten, verketten Sie die beiden Werte, sollten Sie mithilfe von string-Formatierung anstelle des ' + ' - Zeichen.
zB
return '_%s' % self.name
zurückkehren würde'_None'
wennself.name
Wert istNone
InformationsquelleAutor Mariatta