Python错误:\uuuu init\uuuu()至少接受3个参数(给定3个)
因此,我正在使用“保存配置文件”功能,我不确定为什么会出现以下错误:Python错误:\uuuu init\uuuu()至少接受3个参数(给定3个),python,pyramid,mako,Python,Pyramid,Mako,因此,我正在使用“保存配置文件”功能,我不确定为什么会出现以下错误: __init__() takes at least 3 arguments (3 given) 这就是它所使用的函数(在点击self.profiles.update行之后): 扩展控制台: 我在项目范围内搜索了init,这似乎是唯一匹配的函数 class WhoView(Extension): def __init__(self, context, request): self.session
__init__() takes at least 3 arguments (3 given)
这就是它所使用的函数(在点击
self.profiles.update行之后):
扩展控制台:
我在项目范围内搜索了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)
有什么想法吗?您需要查看的其他信息?您没有在任何地方重定向(self.route执行重定向)。另外,您不能在这里重定向,因为您正在进行ajax调用。我很确定电话和电子邮件的分配是不正确的,因为你正在将数组转换为字符串。我们明天在办公室讨论这个问题。同样正如sza所指出的,您不会为方法调用传递self
@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(firstName=first_name, lastName=last_name, emails=emails, phones=phones)
这并不能解决您的问题,但请注意,在程序中创建的每个对象都调用\uuuu init\uuuu
——这是用于初始化(可变)对象的方法。完整堆栈跟踪将非常有用。如果您必须捕获异常,而不是让它传播,那么可以使用sys.exc_info()[2]
来获取回溯!最后,我不得不从手机和电子邮件中删除str,arraysYa,Leon坐在我身后2英尺左右是的,我不应该把self放在里面
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)