RuntimeError: превышена максимальная глубина рекурсии при вызове объекта Python во время работы openerp

помогите пожалуйста исправить ошибку! Я пытался обновить модуль odoo-openerp. в папке контроллера main.py структура выглядит как показано ниже. И я получаю сообщение об ошибке RuntimeError: превышена максимальная глубина рекурсии при вызове объекта Python:

@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)

person BomberMan    schedule 24.09.2014    source источник
comment
Можете ли вы опубликовать последние несколько строк трассировки?   -  person Gerrat    schedule 24.09.2014


Ответы (1)


Это может произойти при переносе любого модуля со старого API на новый. Вам следует попробовать эту документацию. Надеюсь, это поможет

person Community    schedule 10.10.2014