Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
4 Trả lời
8057 Lượt xem

I am trying to inherit a base users form (base.view_users_simple_form), that pops up after clicking on an user from a widget wihin a custom module. What I want is to add two more editable input fields (these fields already exist on the database) to it, since default form only comes with three: phone, mobile and fax: This is the traceback thrown when restarting server:

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 177, in run_wsgi
    execute(self.server.app)
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 165, in execute
    application_iter = app(environ, start_response)
  File "/opt/odoo/sources/odoo/openerp/service/server.py", line 291, in app
    return self.app(e, s)
  File "/opt/odoo/sources/odoo/openerp/service/wsgi_server.py", line 216, in application
    return application_unproxied(environ, start_response)
  File "/opt/odoo/sources/odoo/openerp/service/wsgi_server.py", line 202, in application_unproxied
    result = handler(environ, start_response)
  File "/opt/odoo/sources/odoo/openerp/http.py", line 1292, in __call__
    return self.dispatch(environ, start_response)
  File "/opt/odoo/sources/odoo/openerp/http.py", line 1266, in __call__
    return self.app(environ, start_wrapped)
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/wsgi.py", line 588, in __call__
    return self.app(environ, start_response)
  File "/opt/odoo/sources/odoo/openerp/http.py", line 1430, in dispatch
    ir_http = request.registry['ir.http']
  File "/opt/odoo/sources/odoo/openerp/http.py", line 348, in registry
    return openerp.modules.registry.RegistryManager.get(self.db) if self.db else None
  File "/opt/odoo/sources/odoo/openerp/modules/registry.py", line 339, in get
    update_module)
  File "/opt/odoo/sources/odoo/openerp/modules/registry.py", line 370, in new
    openerp.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/opt/odoo/sources/odoo/openerp/modules/loading.py", line 350, in load_modules
    force, status, report, loaded_modules, update_module)
  File "/opt/odoo/sources/odoo/openerp/modules/loading.py", line 255, in load_marked_modules
    loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
  File "/opt/odoo/sources/odoo/openerp/modules/loading.py", line 176, in load_module_graph
    _load_data(cr, module_name, idref, mode, kind='data')
  File "/opt/odoo/sources/odoo/openerp/modules/loading.py", line 118, in _load_data
    tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report)
  File "/opt/odoo/sources/odoo/openerp/tools/convert.py", line 900, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
  File "/opt/odoo/sources/odoo/openerp/tools/convert.py", line 986, in convert_xml_import
    obj.parse(doc.getroot(), mode=mode)
  File "/opt/odoo/sources/odoo/openerp/tools/convert.py", line 852, in parse
    self._tags[rec.tag](self.cr, rec, n, mode=mode)
  File "/opt/odoo/sources/odoo/openerp/tools/convert.py", line 762, in _tag_record
    id = self.pool['ir.model.data']._update(cr, self.uid, rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode, context=rec_context )
  File "/opt/odoo/sources/odoo/openerp/api.py", line 268, in wrapper
    return old_api(self, *args, **kwargs)
  File "/opt/odoo/sources/odoo/openerp/addons/base/ir/ir_model.py", line 1065, in _update
    res_id = model_obj.create(cr, uid, values, context=context)
  File "/opt/odoo/sources/odoo/openerp/api.py", line 268, in wrapper
    return old_api(self, *args, **kwargs)
  File "/opt/odoo/sources/odoo/openerp/addons/base/ir/ir_ui_view.py", line 255, in create
    context=context)
  File "/opt/odoo/sources/odoo/openerp/api.py", line 268, in wrapper
    return old_api(self, *args, **kwargs)
  File "/opt/odoo/sources/odoo/openerp/api.py", line 372, in old_api
    result = method(recs, *args, **kwargs)
  File "/opt/odoo/sources/odoo/openerp/models.py", line 4093, in create
    record = self.browse(self._create(old_vals))
  File "/opt/odoo/sources/odoo/openerp/api.py", line 266, in wrapper
    return new_api(self, *args, **kwargs)
  File "/opt/odoo/sources/odoo/openerp/api.py", line 508, in new_api
    result = method(self._model, cr, uid, *args, **old_kwargs)
  File "/opt/odoo/sources/odoo/openerp/models.py", line 4284, in _create
    recs._validate_fields(vals)
  File "/opt/odoo/sources/odoo/openerp/api.py", line 266, in wrapper
    return new_api(self, *args, **kwargs)
  File "/opt/odoo/sources/odoo/openerp/models.py", line 1271, in _validate_fields
    raise ValidationError('\n'.join(errors))
ParseError: "ValidateError El(los) campo(s) `arch` fallaron contra la restricción: Invalid view definition
Detalles de error:
El campo `groups_id` no existe
Error de contexto:
Vista `work.order.user.form.edit`
[view_id: 1885, xml_id: n/a, model: res.partner, parent_id: 152]" while parsing /opt/odoo/additional_addons/quipons/contract_work_order_user/views/user_form_edit_view.xml:5, near
<record model="ir.ui.view" id="view_users_simple_form">
   <field name="name">work.order.user.form.edit</field>
   <field name="model">res.partner</field>
   <field name="inherit_id" ref="base.view_users_simple_form"/>
   <field name="mode">primary</field>
   <field name="arch" type="xml">
    <field name="name" position="after">
          <field name="fax"/>
        </field>
   </field>
  </record>
And my current view code:

<?xml version="1.0"?>
<openerp>
 <data>
  <record model="ir.ui.view" id="view_users_simple_form">
   <field name="name">work.order.user.form.edit</field>
   <field name="model">res.partner</field>
   <field name="inherit_id" ref="base.view_users_simple_form" />
   <field name="mode">primary</field>
   <field name="arch" type="xml">
    <field name="name" position="after">
          <field name="fax" />
        </field>
   </field>
  </record>
 </data>
</openerp>
Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Hi Adrian,


 <field name="model">res.partner</field>
   <field name="inherit_id" ref="base.view_users_simple_form" />

That view is from the model res.users, not from res.partner.



Ảnh đại diện
Huỷ bỏ
Tác giả

Thanks. I had changed it to res.partner since I didn't know the error was for not adding the base dependency.

Câu trả lời hay nhất

Hi Adrian,
In the above example codes for all records you have given the same id, while creating a new record just give a new id for it.  Check whether base is added in depends in the manifest / openerp file.

Thank You

Ảnh đại diện
Huỷ bỏ
Tác giả

Sorry, look answer above.

Tác giả Câu trả lời hay nhất

Hello Niyas, thanks for answering.

Unfortunately I had a different id previously and it didn't work, then I kept same one than base view after reading another post. New changes:

+__openerp.py__:

'depends': ['base',

Below is the current view. I had added some unintented code I didn't notice in the previous version after trying to fix it (fax shouldn't be in, the desired fields instead as I wrote, which in place I wanted to appear after fax):

<?xml version="1.0"?>
<openerp>
 <data>
  <!--record model="ir.ui.view" id="view_users_simple_form"--> <!-- Un usuario dijo que el id se mantuviera -->
  <record model="ir.ui.view" id="view_users_simple_form_extend">
   <field name="name">work.order.user.form.edit</field>
   <field name="model">res.partner</field>
   <field name="inherit_id" ref="base.view_users_simple_form" />
   <field name="mode">primary</field>
   <field name="arch" type="xml">
    <field name="fax" position="after">
          <field name="vat" />
     <field name="license" />
        </field>
   </field>
  </record>
 </data>
</openerp>

It's still giving me that "groups_id field doesn't exist" error (translated it). I inspected base view and it has that named field, I can guess it's interfering.

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 11 22
2924
2
thg 2 23
1963
3
thg 8 22
11938
2
thg 2 19
4148
2
thg 6 16
6015