Ошибка Python: __init__() принимает как минимум 3 аргумента (дано 3)
Поэтому я работаю над функцией сохранения профиля и не знаю, почему у меня появляется следующая ошибка:
__init__() takes at least 3 arguments (3 given)
Это функция, в которой это происходит (сразу после 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')
Расширенная консоль:
Я выполнил поиск по всему проекту для init, и это похоже на единственную функцию, которая соответствует
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)
Какие-нибудь мысли? Дополнительная информация, которую вам нужно увидеть?
2 ответа
Вы никуда не перенаправляете (self.route выполняет перенаправление). Кроме того, вы не можете перенаправить сюда, потому что вы делаете вызов ajax. Я почти уверен, что назначение для телефонов и электронных писем неверно, потому что вы приводите массивы в строки. Мы поговорим об этом завтра в офисе. Также, как указал sza, вы не передаете себя для вызовов методов.
@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(firstName=first_name, lastName=last_name, emails=emails, phones=phones)
value = {'result:': 'success', 'message': 'Profile Saved!'}
except Exception, err:
print err
value = {'result:': 'error', 'message': 'There was an error processing the request'}
#returns a json response
return self.respond(value)
Не
self.profiles.update(self, firstName=first_name, lastName=last_name, emails=emails, phones=phones)
должно быть
self.profiles.update(firstName=first_name, lastName=last_name, emails=emails, phones=phones)