This question has been flagged
1 Reply
14789 Views

I am trying to add a record but i am having this error while opening the form view: 

Odoo Server Error
Traceback (most recent call last):
  File "/odoo/odoo-server/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
    result = request.dispatch()
  File "/odoo/odoo-server/odoo/http.py", line 683, in dispatch
    result = self._call_function(**self.params)
  File "/odoo/odoo-server/odoo/http.py", line 359, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/odoo/odoo-server/odoo/service/model.py", line 94, in wrapper
    return f(dbname, *args, **kwargs)
  File "/odoo/odoo-server/odoo/http.py", line 347, in checked_call
    result = self.endpoint(*a, **kw)
  File "/odoo/odoo-server/odoo/http.py", line 912, in __call__
    return self.method(*args, **kw)
  File "/odoo/odoo-server/odoo/http.py", line 531, in response_wrap
    response = f(*args, **kw)
  File "/odoo/odoo-server/addons/web/controllers/main.py", line 1377, in call_kw
    return self._call_kw(model, method, args, kwargs)
  File "/odoo/odoo-server/addons/web/controllers/main.py", line 1369, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/odoo/odoo-server/odoo/api.py", line 396, in call_kw
    result = _call_kw_multi(method, model, args, kwargs)
  File "/odoo/odoo-server/odoo/api.py", line 383, in _call_kw_multi
    result = method(recs, *args, **kwargs)
  File "/odoo/odoo-server/odoo/models.py", line 6220, in onchange
    record[name] = value
  File "/odoo/odoo-server/odoo/models.py", line 5668, in __setitem__
    return self._fields[key].__set__(self, value)
  File "/odoo/odoo-server/odoo/fields.py", line 1082, in __set__
    self.write(new_records, value)
  File "/odoo/odoo-server/odoo/fields.py", line 895, in write
    cache_value = self.convert_to_cache(value, records)
  File "/odoo/odoo-server/odoo/fields.py", line 1307, in convert_to_cache
    return float_round(value, precision_digits=digits[1]) if digits else value
Exception

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/odoo/odoo-server/odoo/http.py", line 639, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/odoo/odoo-server/odoo/http.py", line 315, in _handle_exception
    raise exception.with_traceback(None) from new_cause
TypeError: 'int' object is not subscriptable

this is my model: 


# -*- coding: utf-8 -*-

from odoo import models, fields, api


class leads(models.Model):
    _name = 'leads.leads'
    _description = 'Lead'
    nombre = fields.Char(
        'Nombre',
        required=True
    )
    apellido = fields.Char(
        'Apellido',
        required=True
    )
    dni = fields.Char(
        'DNI',
        required=True
    )
    municipio = fields.Char(
        'Municipio',
        required=True
    )
    provincia = fields.Selection(
        selection=[
            ('cor', 'A Coruña'),
            ('ala', 'Alava'),
            ('alic', 'Alicante'),
            ('alb', 'Albacete'),
            ('Alm', 'Almería'),
            ('ast', 'Asturias'),
            ('avi', 'Ávila'),
            ('bad', 'Badajoz'),
            ('bal', 'Baleares'),
            ('bcn', 'Barcelona'),
            ('bur', 'Burgos'),
            ('cac', 'Cáceres'),
            ('cdz', 'Cádiz'),
            ('cant', 'Cantabria'),
            ('cast', 'Castellón'),
            ('crl', 'Ciudad Real'),
            ('cdb', 'Córdoba'),
            ('cuen', 'Cuenca'),
            ('grn', 'Girona'),
            ('grana', 'Granada'),
            ('guada', 'Guadalajara'),
            ('gip', 'Gipuzkoa'),
            ('huel', 'Huelva'),
            ('hues', 'Huesca'),
            ('jaen', 'Jaén'),
            ('lrj', 'La Rioja'),
            ('lpm', 'Las Palmas'),
            ('ln', 'León'),
            ('lrd', 'Lérida'),
            ('lugo', 'Lugo'),
            ('mrd', 'Madrid'),
            ('mlg', 'Málaga'),
            ('mrc', 'Murcia'),
            ('nvr', 'Navarra'),
            ('orns', 'Ourense'),
            ('plc', 'Palencia'),
            ('ptv', 'Pontevedra'),
            ('slm', 'Salamanca'),
            ('sgv', 'Segovia'),
            ('svl', 'Sevilla'),
            ('sra', 'Soria'),
            ('trg', 'Tarragona'),
            ('sct', 'Santa Cruz de Tenerife'),
            ('trl', 'Teruel'),
            ('tld', 'Toledo'),
            ('vlc', 'Valencia'),
            ('vll', 'Valladolid'),
            ('vi', 'Vizcaya'),
            ('zmr', 'Zamora'),
            ('zgz', 'Zaragoza')
        ]
    )
    email = fields.Char(
        'Email',
        required=True
    )
    telefono = fields.Integer(
        string='Telefono'
    )
    asunto = fields.Text('Asunto')
    cuando = fields.Text('Cuando')
    ip = fields.Char('IP')
    procedencia = fields.Char('Procedencia')
    tipo = fields.Char('Tipo')

    fecha = fields.Date(
        'Fecha',
        default=fields.Date.today
    )


And this is my view:

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <data>
        <record id="view_form_lead_ui" model="ir.ui.view">
            <field name="name">view_form_lead_ui</field>
            <field name="model">leads.leads</field>
            <field name="arch" type="xml">
            <form>
                <group>
                    <field name="nombre"/>
                    <field name="apellido"/>
                    <field name="dni"/>
                    <field name="municipio"/>
                    <field name="provincia"/>
                    <field name="email"/>
                    <field name="telefono"/>
                </group>
                <group>
                    <field name="asunto"/>
                    <field name="cuando"/>
                    <field name="ip"/>
                    <field name="procedencia"/>
                    <field name="tipo"/>
                    <field name="fecha"/>
                </group>
            </form>
            </field>
        </record>

        <record id="view_list_lead_ui" model="ir.ui.view">
            <field name="name">view_list_lead_ui</field>
            <field name="model">leads.leads</field>
            <field name="arch" type="xml">
            <tree>
                <field name="nombre"/>
                <field name="apellido"/>
                <field name="dni"/>
                <field name="municipio"/>
                <field name="provincia"/>
                <field name="email"/>
                <field name="telefono"/>
                <field name="asunto"/>
                <field name="cuando"/>
                <field name="ip"/>
                <field name="procedencia"/>
                <field name="tipo"/>
                <field name="fecha"/>
            </tree>
            </field>
        </record>

        <record model="ir.actions.act_window" id="action_lead_stage">
            <field name="name">Lead stages</field>
            <field name="res_model">leads.leads</field>
            <field name="view_mode">tree,form</field>
        </record>

        <menuitem name="Leads Woinfi" id="leads_woinfi_menu_root"/>
        <!-- menu categories -->
        <menuitem name="Leads" id="leads_woinfi.leads" parent="leads_woinfi_menu_root" action="action_lead_stage"/>
    </data>
</odoo>

Avatar
Discard

is there any onchange functions or compute functions added inside this model ?

Best Answer

Hi,

The provided code seems to be okay. The error ('int' object is not subscriptable) probably comes when you are trying to subscript from a variable but it contains an Integer value. For example: somewhere in your code contains ‘foo.test’. But here foo contains integer value instead of an object.

Please check this case happens in your code.

Regards,

Avatar
Discard