8

私は OpenERP 開発を学んでいますが、明らかに問題に直面しています。

非常に単純なモジュールを作成しましたが、インストールできません。それは言い続けている

フィールド アーチの検証中に ValidateError エラーが発生しました: ビュー アーキテクチャの XML が無効です!

ここに私のモジュールがあります:

初期化.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: 1 つのモジュールをロードしています... 2013-09-17 19:22:19,220 1674 INFO emad92 openerp.modules.loading: 10 個のモジュールをロードしています... 2013-09-17 19:22:19,251 1674 INFO emad92 openerp.modules.loading: 11 個のモジュールをロードしています... 2013-09-17 19:22:19,252 1674 INFO emad92 openerp.modules.module: モジュール testmod: 作成または更新データベース テーブル 2013-09-17 19:22:19,255 1674 INFO emad92 openerp.modules.loading: モジュール testmod: test_view.xml の読み込み 2013-09-17 19:22:19,269 1674 エラー emad92 openerp.addons.base.ir.ir_ui_view : モデルのビューをレンダリングできません: testmod.test トレースバック (最新の呼び出しが最後): ファイル "/usr/lib/pymodules/python2.7/openerp/addons/base/ir/ir_ui_view.py"、126 行目_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' オブジェクトに属性 'fields_view_get' がありません 2013-09-17 19:22:19,276 1674 エラー emad92 openerp.tools.convert: /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> 

トレースバック (最新の呼び出しが最後): ファイル

「/usr/lib/pymodules/python2.7/openerp/tools/convert.py」、行 847、解析済み self._tags[rec.tag](self.cr、rec、n) ファイル「/usr/lib/ pymodules/python2.7/openerp/tools/convert.py"、814 行目、_tag_record id = self.pool.get('ir.model.data')._update(cr, self.uid, rec_model, self.module 内) 、res、rec_id または False、not self.isnoupdate(data_node)、noupdate=self.isnoupdate(data_node)、mode=self.mode、context=rec_context ) ファイル "/usr/lib/pymodules/python2.7/openerp/addons /base/ir/ir_model.py"、964 行目、_update 内 res_id = model_obj.create(cr, uid, values, context=context) ファイル "/usr/lib/pymodules/python2.7/openerp/addons/base/ ir/ir_ui_view.py"、103 行目、create return super(view, self).create(cr, uid, values, context) ファイル "/usr/lib/pymodules/python2.7/openerp/osv/orm.py"、4472 行目、create self._validate(cr, user, [id_new], context) ファイル "/usr/lib/pymodules/python2.7/openerp/osv/orm.py "、1546 行目、_validate raise except_orm('ValidateError', '\n'.join(error_msgs)) except_orm: ('ValidateError', u' フィールドの検証中にエラーが発生しました arch: ビュー アーキテクチャの XML が無効です! ') 2013-09-17 19:22:19,278 1674 エラー emad92 openerp.netsvc: フィールドの検証中に ValidateError エラーが発生しました arch: ビュー アーキテクチャの XML が無効です! トレースバック (最新の呼び出しは最後): ファイル "/usr/ lib/pymodules/python2.7/openerp/netsvc.py"、292 行目、dispatch_rpc 結果 = ExportService.getService(service_name).dispatch(method, params) ファイル "/usr/lib/pymodules/python2.7/openerp/サービス/web_services.py"、626 行目、dispatch res = fn(db, uid, *params) File "/usr/lib/pymodules/python2.7/openerp/osv/osv.py"、188 行目、execute_kw return self.execute (db、uid、obj、method、*args、**kw または {}) ファイル "/usr/lib/pymodules/python2.7/openerp/osv/osv.py"、144 行目、ラッパー raise except_osv(inst .name, inst.value) except_osv: ('ValidateError', u'フィールド アーチの検証中にエラーが発生しました: ビュー アーキテクチャの XML が無効です!') 2013-09-17 19:22:19,283 1674 INFO emad92 werkzeug: 127.0.0.1 - - [2013 年 9 月 17 日 19:22:19] "POST /web/dataset/call_button HTTP/1.1" 200 -*args、**kw または {}) ファイル "/usr/lib/pymodules/python2.7/openerp/osv/osv.py"、144 行目、ラッパーで raise except_osv(inst.name, inst.value) except_osv: ('ValidateError', u'フィールド アーチの検証中にエラーが発生しました: ビュー アーキテクチャの XML が無効です!') 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 -*args、**kw または {}) ファイル "/usr/lib/pymodules/python2.7/openerp/osv/osv.py"、144 行目、ラッパーで raise except_osv(inst.name, inst.value) except_osv: ('ValidateError', u'フィールド アーチの検証中にエラーが発生しました: ビュー アーキテクチャの XML が無効です!') 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 -POST /web/dataset/call_button HTTP/1.1" 200 -POST /web/dataset/call_button HTTP/1.1" 200 -

Linuxプラットフォーム(ubuntu 13.04)でOpenERP 7.0を使用しています。

4

3 に答える 3

0

モジュールが正しくインストールされていないため、例外 AttributeError が発生します。

関数 fields_view_get はモデルのフィールドを見つけようとしますが、それらがありません。

self.pool.get(view.model).fields_view_get(cr, uid, view_id=view.id, view_type=view.type, context=context) AttributeError: 'NoneType' オブジェクトに属性がありません

モジュールがインストールされているかどうかを確認できますか、それとも再開を期待できますか? psql select * from ir.model.fields order by id desc で実行して ir.model.fields テーブルを確認すると、2 つのフィールドが表示されるはずですが、テーブルには表示されないと思います。2 つのうちの 1 つだけかもしれません。不足しているフィールドを xml ビューから削除し、インストールを再開してみてください。OpenErp サーバーを再起動し、モジュールをアンインストールして再インストールします。私は同じ問題を抱えていて、モジュールを完全にインストールし、サーバーを再起動して削除し、再試行した後にのみ修正できました

于 2014-04-19T18:13:05.610 に答える