2013-08-01 105 views
1

,所以我工作的一个保存文件功能,我不知道为什么,我发现了以下错误: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') 

enter image description here

扩展控制台:

enter image description here

我做了一个项目范围内寻找初始化这似乎符合

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) 

任何想法的唯一功能?您需要看到的其他信息?

+0

这不解决您的问题,但要注意的是在你的程序中创建的每个对象调用'__init__' - 这是用来初始化(可变)对象的方法。 – llb

+1

完整的堆栈跟踪将非常有用。如果你必须捕获异常而不是让它传播,你可以使用'sys.exc_info()[2]'来获得回溯。 – user2357112

回答

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) 
+0

甜!最后还必须从手机和电子邮件阵列 –

+2

LOL中删除str。你们一起工作 – zsong

+1

雅,莱昂坐在我身后约2英尺 – JeffRegan

1

是不是

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) 
+0

是啊我不应该把自己放在里面 –

相关问题