Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RuntimeError:在运行openerp时调用Python对象时超出了最大递归深度_Python_Openerp 8 - Fatal编程技术网

RuntimeError:在运行openerp时调用Python对象时超出了最大递归深度

RuntimeError:在运行openerp时调用Python对象时超出了最大递归深度,python,openerp-8,Python,Openerp 8,请帮我纠正错误!我试图更新odoo openerp模块。在控制器文件夹main.py中,结构如下所示。我得到了RuntimeError错误:调用Python对象时超过了最大递归深度 : @http.route(['/survey/submit/'], type='http',methods=['POST'],auth='public',website=True) def提交(自我、调查、**发布): _logger.debug('传入数据:%s',post) page_id=int(post['

请帮我纠正错误!我试图更新odoo openerp模块。在控制器文件夹main.py中,结构如下所示。我得到了RuntimeError错误:调用Python对象时超过了最大递归深度 :

@http.route(['/survey/submit/'],
type='http',methods=['POST'],auth='public',website=True)
def提交(自我、调查、**发布):
_logger.debug('传入数据:%s',post)
page_id=int(post['page_id']))
#cr,uid,context=request.cr,request.uid,request.context
survey_obj=request.env['survey.survey']
questions\u obj=request.env['survey.question']
#问题id=问题对象搜索(cr,uid,[('page\u id','=',page\u id)],上下文=上下文)
#问题=问题对象浏览(cr、uid、问题ID、上下文=上下文)
questions=questions\u obj.sudo().search([('page\u id','=',page\u id)])
#答案验证
错误={}
有关问题:
answer_tag=“%s_%s_%s”%”(survey.id,page_id,question.id)
#错误.更新(问题\对象.验证\问题(cr,uid,问题,帖子,答案\标签,上下文=上下文))
错误。更新(问题\对象。验证\问题(问题、帖子、答案\标签))
ret={}
如果(len(errors)!=0):
#将错误消息返回到网页
ret['errors']=错误
其他:
#将答案存储到数据库中
user\u input\u obj=request.env['survey.user\u input']
user\u input\u line\u obj=request.env['survey.user\u input\u line']
尝试:
user_input_id=user_input_obj.sudo().search([('token','=',post['token']))][0]
KeyError除外:#无效令牌
返回请求.website.render(“website.403”)
有关问题:
answer_tag=“%s_%s_%s”%”(survey.id,page_id,question.id)
用户输入行对象保存行(用户输入id、问题、帖子、答案标签)
user\u input=request.env['survey.user\u input'].搜索([]
返回=发布['button\u submit']=='previous'
下一页,上一页=调查对象。下一页(用户输入,页面id,返回=返回)
VAL={'last_displayed_page_id':page_id}
如果“下一页”为“无”且未返回:
更新({'state':'done'})
其他:
更新({'state':'skip'})
用户输入对象写入(用户输入id,VAL)
ret['redirect']='/survey/fill/%s/%s%.(survey.id,post['token']))
如果返回:
ret['redirect']+='/prev'
返回json.dumps(ret)

将任何模块从旧API迁移到新API时,可能会发生这种情况。您应该尝试使用文档。希望能有所帮助

你能发布追踪的最后几行吗?
@http.route(['/survey/submit/<model("survey.survey"):survey>'],
            type='http', methods=['POST'], auth='public', website=True)
def submit(self, survey, **post):
    _logger.debug('Incoming data: %s', post)
    page_id = int(post['page_id'])
    # cr, uid, context = request.cr, request.uid, request.context
    survey_obj = request.env['survey.survey']
    questions_obj = request.env['survey.question']
    # questions_ids = questions_obj.search(cr, uid, [('page_id', '=', page_id)], context=context)
    # questions = questions_obj.browse(cr, uid, questions_ids, context=context)
    questions = questions_obj.sudo().search([('page_id', '=', page_id)])

    # Answer validation
    errors = {}
    for question in questions:
        answer_tag = "%s_%s_%s" % (survey.id, page_id, question.id)
        # errors.update(questions_obj.validate_question(cr, uid, question, post, answer_tag, context=context))
        errors.update(questions_obj.validate_question(question, post, answer_tag))

    ret = {}
    if (len(errors) != 0):
        # Return errors messages to webpage
        ret['errors'] = errors
    else:
        # Store answers into database
        user_input_obj = request.env['survey.user_input']

        user_input_line_obj = request.env['survey.user_input_line']
        try:
            user_input_id = user_input_obj.sudo().search([('token', '=', post['token'])])[0]
        except KeyError:  # Invalid token
            return request.website.render("website.403")
        for question in questions:
            answer_tag = "%s_%s_%s" % (survey.id, page_id, question.id)
            user_input_line_obj.save_lines(user_input_id, question, post, answer_tag)


        user_input = request.env['survey.user_input'].search([])
        go_back = post['button_submit'] == 'previous'
        next_page, _, last = survey_obj.next_page(user_input, page_id, go_back=go_back)
        vals = {'last_displayed_page_id': page_id}
        if next_page is None and not go_back:
            vals.update({'state': 'done'})
        else:
            vals.update({'state': 'skip'})
        user_input_obj.write(user_input_id, vals)
        ret['redirect'] = '/survey/fill/%s/%s' % (survey.id, post['token'])
        if go_back:
            ret['redirect'] += '/prev'
    return json.dumps(ret)