odoo: грешка при създаване на нов изглед на формуляр: полето(ята) `arch` не успя срещу ограничение: невалидна дефиниция на изглед

Искам да създам нов изглед на формуляр, свързан с нов модел на данни, създавам нов елемент от менюто „menu1“, който има подменю „menus“ и след това искам да персонализирам изгледа на действие. Това е моят код:

Моят 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 Field(s) 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, тогава добавете новия формуляр Атрибут като 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