2013-09-17 4 views
8

Я изучаю разработку OpenERP, и я застрял в проблеме, которая, я думаю, должна быть очевидной.Модуль OpenERP xml ValidateError

Я сделал очень простой модуль, но я не могу его установить. Он продолжает говорить

ValidateError Error occurred while validating the field(s) arch: Invalid XML for View Architecture!

Вот мой модуль:

INIT .py

import testmod 
__openerp__.py 

{ 
'name': "Test Module", 
'description': "Basic example of a (future) web module", 
'category': 'Hidden', 
'depends': ['base'], 
'data': [ 
    'test_view.xml', 
], 
'installable': True, 
'application': False, 
'auto_install': False, 
} 

testmod.py

from openerp.osv import fields, osv 

class testmod_test(osv.Model): 
    _name = 'testmod.test' 
    _description = 'Test Model' 
    _columns = { 
    'test1': fields.char('Test 1', size=32, required=True, help='Test 1 help'), 
    'test2': fields.float('Test 2', help='Test 2 help'), 
    } 

testmod_test() 

test_view.xml

<?xml version="1.0" encoding="utf-8"?> 
<openerp> 
<data> 

<record id="testmod_test_form" model="ir.ui.view"> 
    <field name="name">testmod.test.form</field> 
    <field name="model">testmod.test</field> 
    <field name="arch" type="xml"> 
     <form string="Test" version="7.0"> 
     <field name="test1" /> 
     <field name="test2"/> 

     </form> 
    </field> 
</record> 

<record id="testmod_test_tree" model="ir.ui.view"> 
    <field name="name">testmod.test.tree</field> 
    <field name="model">testmod.test</field> 
    <field name="arch" type="xml"> 
    <tree string="Test"> 
     <field name="test1" /> 
     <field name="test2"/> 
    </tree> 
    </field> 
</record> 

<record model="ir.actions.act_window" id="action_testmod_test"> 
    <field name="name">Test</field> 
    <field name="res_model">testmod.test</field> 
    <field name="view_type">form</field> 
    <field name="view_mode">tree,form</field> 
</record> 

<menuitem 
      name="Test" 
      id="menu_testmod_test" 

      /> 

<menuitem 
      name="Test sub" 
      parent="menu_testmod_test" 
      id="menu_testmod_test_sub" 
      /> 
<menuitem 
     name="Sub Test" 
     id="menu_subtest" 
     parent="menu_testmod_test_sub" 
     action="action_testmod_test"  
     /> 


</data> 
</openerp> 

Вот полный журнал ошибок:

2013-09-17 19:22:19,199 1674 INFO emad92 openerp.modules.loading: loading 1 modules... 2013-09-17 19:22:19,220 1674 INFO emad92 openerp.modules.loading: loading 10 modules... 2013-09-17 19:22:19,251 1674 INFO emad92 openerp.modules.loading: loading 11 modules... 2013-09-17 19:22:19,252 1674 INFO emad92 openerp.modules.module: module testmod: creating or updating database tables 2013-09-17 19:22:19,255 1674 INFO emad92 openerp.modules.loading: module testmod: loading test_view.xml 2013-09-17 19:22:19,269 1674 ERROR emad92 openerp.addons.base.ir.ir_ui_view: Can't render view for model: testmod.test Traceback (most recent call last): File "/usr/lib/pymodules/python2.7/openerp/addons/base/ir/ir_ui_view.py", line 126, in _check_render_view fvg = self.pool.get(view.model).fields_view_get(cr, uid, view_id=view.id, view_type=view.type, context=context) AttributeError: 'NoneType' object has no attribute 'fields_view_get' 2013-09-17 19:22:19,276 1674 ERROR emad92 openerp.tools.convert: Parse error in /opt/modules-openerp/testmod/test_view.xml:5:

<record id="testmod_test_form" model="ir.ui.view"> 
    <field name="name">testmod.test.form</field> 
    <field name="model">testmod.test</field> 
    <field name="arch" type="xml"> 
     <form string="Test" version="7.0"> 
     <field name="test1" /> 
     <field name="test2"/> 

     </form> 
    </field> 
</record> 

Traceback (самый последний вызов последнего): Файл

"/usr/lib/pymodules/python2.7/openerp/tools/convert.py", line 847, in parse self._tags[rec.tag](self.cr, rec, n) File "/usr/lib/pymodules/python2.7/openerp/tools/convert.py", line 814, in _tag_record id = self.pool.get('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 "/usr/lib/pymodules/python2.7/openerp/addons/base/ir/ir_model.py", line 964, in _update res_id = model_obj.create(cr, uid, values, context=context) File "/usr/lib/pymodules/python2.7/openerp/addons/base/ir/ir_ui_view.py", line 103, in create return super(view, self).create(cr, uid, values, context) File "/usr/lib/pymodules/python2.7/openerp/osv/orm.py", line 4472, in create self._validate(cr, user, [id_new], context) File "/usr/lib/pymodules/python2.7/openerp/osv/orm.py", line 1546, in _validate raise except_orm('ValidateError', '\n'.join(error_msgs)) except_orm: ('ValidateError', u'Error occurred while validating the field(s) arch: Invalid XML for View Architecture!') 2013-09-17 19:22:19,278 1674 ERROR emad92 openerp.netsvc: ValidateError Error occurred while validating the field(s) arch: Invalid XML for View Architecture! Traceback (most recent call last): File "/usr/lib/pymodules/python2.7/openerp/netsvc.py", line 292, in dispatch_rpc result = ExportService.getService(service_name).dispatch(method, params) File "/usr/lib/pymodules/python2.7/openerp/service/web_services.py", line 626, in dispatch res = fn(db, uid, *params) File "/usr/lib/pymodules/python2.7/openerp/osv/osv.py", line 188, in execute_kw return self.execute(db, uid, obj, method, *args, **kw or {}) File "/usr/lib/pymodules/python2.7/openerp/osv/osv.py", line 144, in wrapper raise except_osv(inst.name, inst.value) except_osv: ('ValidateError', u'Error occurred while validating the field(s) arch: Invalid XML for View Architecture!') 2013-09-17 19:22:19,283 1674 INFO emad92 werkzeug: 127.0.0.1 - - [17/Sep/2013 19:22:19] "POST /web/dataset/call_button HTTP/1.1" 200 -

и я использую OpenERP 7.0 в платформе Linux (Ubuntu 13,04).

+0

Невозможно увидеть какие-либо очевидные проблемы (я больше знаком с версией 6.1) - попробуйте опубликовать на http://help.openerp.com/. – TimoSolo

+0

Здравствуйте, я попытался установить его в 7.0, а также в багажник, и он нормально работает в моем случае. Я также могу сохранить записи. :) – Pooja

ответ

2

Попробуйте прокомментировать раздел данных в openerp .py после установки и повторного включения раздела данных и обновления модуля. Иногда openerp не может создать модель и вызывает ошибки. Это может решить проблему rproblem

0

Исключительное свойство AttributeError происходит потому, что модуль установлен неправильно.

Функция fields_view_get пытается найти поля вашей модели, но они отсутствуют.

self.pool.get (view.model) .fields_view_get (сг, UID, view_id = view.id, View_type = view.type, контекст = контекст) AttributeError: объект 'NoneType' не имеет атрибута

Вы можете проверить, установлен ли модуль или ожидать его возобновления? Проверьте таблицу ir.model.fields, выполнив в psql select * from ir.model.fields order by id desc , это должно показать 2 поля, но я думаю, что это будет не в таблице. Mayby только один из 2. Удалите недостающие поля из представления xml и попытайтесь возобновить установку. Перезагрузите сервер OpenErp, удалите и переустановите модуль. У меня была такая же проблема, и я смог исправить только после того, как я полностью установил модули, перезапустил сервер и удалил и снова попытался

2

Я создал модуль с указанным содержимым файла и его установку без каких-либо проблем. Проверьте правильность имен файлов и модулей.

Смежные вопросы