Python-Fehler: __init__() dauert mindestens 3 Argumente (3)
also ich arbeite an einem Profil speichern-Funktion und ich bin mir nicht sicher, warum bin ich immer die folgende Fehlermeldung:
__init__() takes at least 3 arguments (3 given)
Dies ist die Funktion, es passiert in (rechts, nachdem es trifft die self.profiles.update line
):
@view_config(route_name="profile", request_method='POST')
def save_profile(self):
try:
json = self.request.json_body
#username = str(json['userName'])
first_name = str(json['firstName'])
last_name = str(json['lastName'])
phones = str(json['phones'])
emails = str(json['emails'])
self.profiles.update(self, firstName=first_name, lastName=last_name, emails=emails, phones=phones)
value = {'result:': 'success', 'message': 'Profile Saved!'}
self.respond(value)
return self.route('profile')
except Exception, err:
print err
value = {'result:': 'error', 'message': 'There was an error processing the request'}
self.respond(value)
return self.route('profile')
Die erweiterte Konsole:
Ich habe ein Projekt weite suchen init und dies scheint die einzige Funktion, die Spiele
class WhoView(Extension):
def __init__(self, context, request):
self.session = request.session
self.request = request
self.status_code = 200
self.content_type = "text/html"
ctx = self.session.ctx
self.request_context = context
Extension.__init__(self, ctx)
def attach_session(self, token):
self.ctx.attach_session(token)
Irgendwelche Gedanken? Zusätzliche Informationen, die Sie benötigen, zu sehen?
- Dies nicht beheben Ihr Problem, aber beachten Sie, dass jedes Objekt, das erstellt wird, in Ihrem Programm fordert
__init__
- es ist die Methode zum initialisieren einer (änderbaren) Objekt. - Der volle stack-trace wäre hilfreich. Wenn Sie um die Ausnahme zu fangen, anstatt nur lassen Sie es propagieren, die Sie verwenden können
sys.exc_info()[2]
um die traceback.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bist du nicht umleiten überall (selbst.die route macht einen redirect). Auch können Sie nicht umleiten, weil hier machst du einen ajax-Aufruf. Ich bin mir ziemlich sicher, dass die Zuordnung für die Telefone und E-Mails ist nicht richtig, denn du bist casting-arrays zu strings. Wir reden über das Büro von morgen. Auch als sza wies darauf hin, Sie don ' T-pass-selbst für Methodenaufrufe.
Nicht
sollte