Python错误:初始化至少需要3个参数(给定3个)

2024-05-15 15:57:35 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我正在研究保存配置文件功能,我不确定为什么会出现以下错误:

__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

我在项目范围内搜索了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)

有什么想法吗?你需要看的其他信息?


Tags: nameselfjsoninitvaluerequestsessiondef
2条回答

不是

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)

您没有在任何地方重定向(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)

相关问题 更多 >