2013-08-01 104 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

是啊我不應該把自己放在裏面 –

相關問題