odoo: ошибка при создании нового представления формы: Поле (я) `arch` не соответствует ограничению: Недопустимое определение представления

Я хочу создать новое представление формы, связанное с новой моделью данных, я создаю новый пункт меню «menu1», в котором есть подменю «меню», а затем я хочу настроить представление действий. Это мой код:

Мой XML-файл:

Моя модель данных:

from openerp.osv import fields, osv

class hr_cutomization(osv.osv):

_inherit = "hr.employee"

_columns = {
  'new_field_ID': fields.char('new filed ID',size=11)
}

_default={
  'new_field_ID':0
}

hr_cutomization()

class hr_newmodel(osv.osv):

_name = "hr.newmodel"

_columns = {
  'field1': fields.char('new filed1',size=11),
  'field2': fields.char('new filed2',size=11)
}

_default={
  'field1':0
}

hr_newmodel()

Когда я обновляю свой модуль, я получаю эту ошибку:

ParseError: «Поле(я) ValidateError arch не удалось выполнить ограничение: Недопустимое определение представления Сведения об ошибке: Элемент '

что не так в моем коде?


person nayomi    schedule 06.05.2015    source источник


Ответы (2)


Просто обновите свое действие просмотра в своем xml-файле, некоторые думают так.

<record id="new_action" model="ir.actions.act_window">
        <field name="name">New</field>
        <field name="type">ir.actions.act_window</field>
        <field name="res_model">hr.newmodel</field>
        <field name="view_type">form</field>
        <field name="view_mode">form,tree</field>
        <field name="view_id" ref="view_new_form"/>
    </record>

Просто обновите файл py

from openerp.osv import fields, osv

class hr_cutomization(osv.osv):

_inherit = "hr.employee"

_columns = {
  'new_field_ID': fields.char('new filed ID',size=11)
}

_default={
  'new_field_ID':'0'
}

hr_cutomization()

class hr_newmodel(osv.osv):

_name = "hr.newmodel"

_columns = {
  'field1': fields.char('new filed1',size=11),
  'field2': fields.char('new filed2',size=11)
}

_default={
  'field1':'0'
}

hr_newmodel()

В этом .py ваше поле назначено как char, но вы используете _defaults как 0 (как целое число), вы должны передать его как символ, а не целое число в ваших атрибутах _default.

и вы создаете свой модуль в OpenERP 7.0, затем добавьте новую форму Attribute в качестве version="7.0" в тег form вашего Посмотреть. Если это в odoo 8.0, то этого делать не нужно.

person DASADIYA CHAITANYA    schedule 07.05.2015

Я получил ту же ошибку, и в моем случае это было из-за неправильного отступа в моем файле .py. Попробуйте сделать отступ правильно, примерно так:

from openerp.osv import fields, osv

class hr_cutomization(osv.osv):

    _inherit = "hr.employee"

    _columns = {
      'new_field_ID': fields.char('new filed ID',size=11)
    }

    _default={
      'new_field_ID':'0'
    }

    hr_cutomization()

class hr_newmodel(osv.osv):

    _name = "hr.newmodel"

    _columns = {
      'field1': fields.char('new filed1',size=11),
      'field2': fields.char('new filed2',size=11)
    }

    _default={
      'field1':'0'
    }

    hr_newmodel()

Я думаю, что этот способ мог бы работать

person William Castrillon    schedule 05.10.2015