1

私の間違いがどこにあるのか教えてください。kanganyname(マネージャー名) という名前の新しいフィールドを追加する必要があります。しかし、それは私にエラーを与えています。開発者ガイドに従って、次の変更を行いました。

ここに私のview.xmlがあります

<record model="ir.ui.view" id="namelist_dailyupdate">
    <field name="name">checkroll.daily.update.form</field>
    <field name="model">checkroll.daily.update</field>
    <field name="inherit_id" ref="hr.view_employee_form" />
    <field name="type">form</field>
    <field name="arch" type="xml">
        <form string="daily_update">
            <field name="kanganyname" />
        </form>
    </field>
</record>

<record model="ir.actions.act_window" id="action_inherit_ex">
    <field name="name">checkroll.daily.update.form</field>
    <field name="model">checkroll.daily.update</field>
    <field name="view_type">form</field>
    <field name="view_mode">form</field>
</record>

これが私のモデルクラスです。

class dailyupdate(osv.osv):
    _name = "checkroll.daily.update"
    _inherit = "hr.employee"
    _description = "This table is for daily update"
    _columns = {
        'kanganyname': fields.char('Kangany Name', size=256, required=True)
    }

dailyupdate()

これが私のエラーです:

トレースバック (最後の最後の呼び出し):
ファイル "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/sql_db.py"、226 行目、実行中
res = self._obj.execute(query, params)
IntegrityError : 列 "res_model" の null 値が not-null 制約に違反してい

ますopenerp/addons/checkroll/checkroll_view.xml:179:

checkroll.daily.update.form
checkroll.daily.update
フォーム
フォーム

トレースバック (最新の呼び出しが最後):
ファイル "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/tools/convert.py"、行 847、解析
self._tags[rec.tag](self.cr, rec, n)
ファイル " /home/priyan/Software/openerp-7.0-20130309-002120/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 )
ファイル "/home/priyan/ Software/openerp-7.0-20130309-002120/openerp/addons/base/ir/ir_model.py"、964 行目、_update
res_id = model_obj.create(cr, uid, values, context=context) 内
ファイル "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/osv/orm.py"、4434 行目、create
cr.execute('insert into "'+self._table+'" (id'+ upd0+") 値 ("+str(id_new)+upd1+')', tuple(upd2))
ファイル "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/sql_db.py"、161 行目wrapper
return f(self, *args, **kwargs)
File "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/sql_db.py", line 226, in execute
res = self._obj.execute( query, params)
IntegrityError: 列 "res_model" の null 値が not-null 制約に違反しています

2013-03-18 04:10:16,835 4709 エラー OpenERP_DB openerp.netsvc: 列 "res_model" は not-null 制約に違反しています
トレースバック (最後の最後の呼び出し):
ファイル "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/netsvc.py"、293 行目、dispatch_rpc
結果 = ExportService.getService(service_name).dispatch(method, params)
ファイル "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/service/web_services.py"、425 行目、ディスパッチ
return fn(*params)
ファイル "/home/priyan/Software/openerp- 7.0-20130309-002120/openerp/service/web_services.py"、行 436、exp_authenticate
res_users = pooler.get_pool(db).get('res.users')
ファイル"/home/priyan/Software/openerp-7.0- 20130309-002120/openerp/pooler.py"、49 行目、get_pool 内
return get_db_and_pool(db_name, force_demo, status, update_module)[1]
ファイル「/home/priyan/Software/openerp-7.0-20130309-002120/openerp/pooler.py」、行 33、get_db_and_pool
レジストリ = RegistryManager.get(db_name 、force_demo、status、update_module)
ファイル "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/modules/registry.py"、192 行目、get
update_module 内)
ファイル "/home/priyan/Software/openerp -7.0-20130309-002120/openerp/modules/registry.py"、218 行目、新しい
openerp.modules.load_modules(registry.db, force_demo, status, update_module)
ファイル "/home/priyan/Software/openerp-7.0- 20130309-002120/openerp/modules/loading.py"、344 行目、load_modules 内
処理済み = load_marked_modules(cr、graph、states_to_load、force、status、report、loaded_modules、update_module)
ファイル「/home/priyan/Software/openerp-7.0-20130309-002120/openerp/modules/loading.py」、259 行目load_marked_modules
ロード済み、処理済み = load_module_graph(cr、graph、progressdict、report=report、skip_modules=loaded_modules、perform_checks=perform_checks)
ファイル「/home/priyan/Software/openerp-7.0-20130309-002120/openerp/modules/loading.py」 、190 行目、load_module_graph
load_update_xml(module_name, idref, mode)
ファイル「/home/priyan/Software/openerp-7.0-20130309-002120/openerp/modules/loading.py」、74 行目、
load_update_xml = lambda *args: _load_data(cr, *args, kind='update_xml')
ファイル "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/modules/loading.py"、127 行目、_load_data
tools.convert_xml_import(cr, module_name, fp, idref, mode, noupdate, report)
ファイル内「/home/priyan/Software/openerp-7.0-20130309-002120/openerp/tools/convert.py」、行 954、convert_xml_import
obj.parse(doc.getroot())
ファイル「/home/priyan/Software/openerp」 -7.0-20130309-002120/openerp/tools/convert.py"、847 行目、解析
self._tags[rec.tag](self.cr, rec, n)
ファイル "/home/priyan/Software/openerp-7.0 -20130309-002120/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 )
ファイル "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/addons/base/ir/ir_model.py"、964 行目、_update
res_id 内= model_obj.create(cr, uid, values, context=context)
ファイル「/home/priyan/Software/openerp-7.0-20130309-002120/openerp/osv/orm.py」、4434 行目、create
cr.execute( 'insert into "'+self._table+'" (id'+upd0+) values ("+str(id_new)+upd1+')', tuple(upd2))
ファイル "/home/priyan/Software/openerp-7.0- 20130309-002120/openerp/sql_db.py",161 行目、ラッパー
return f(self, *args, **kwargs)
ファイル "/home/priyan/Software/openerp-7.0-20130309-002120/openerp/sql_db.py"、226 行目、実行中
res = self._obj.execute(query, params)
IntegrityError: 列 "res_model" の null 値not-null 制約に違反しています

2013-03-18 04:10:16,847 4709 INFO OpenERP_DB werkzeug: 127.0.0.1 - - [18/Mar/2013 04:10:16] "POST /web/session/authenticate HTTP/1.1" 200 -

4

1 に答える 1

1

あなたのxmlコードは継承が完全に間違っています。

<record model="ir.ui.view" id="namelist_dailyupdate">
    <field name="name">checkroll.daily.update.form</field>
    <field name="model">checkroll.daily.update</field>
    <field name="inherit_id" ref="hr.view_employee_form" />
    <field name="type">form</field>
    <field name="arch" type="xml">
        <form string="daily_update">
            <field name="kanganyname" />
        </form>
    </field>
</record>

このコードでは、新しいフィールドを追加する場所を指定しません。次のようにコードを定義できます

<record model="ir.ui.view" id="namelist_dailyupdate">
    <field name="name">checkroll.daily.update.form</field>
    <field name="model">checkroll.daily.update</field>
    <field name="inherit_id" ref="hr.view_employee_form" />
    <field name="type">form</field>
    <field name="arch" type="xml">
        <form string="daily_update">
            <xpath expr="//field[@name='name']" position="after">
                <field name="kanganyname" />
           </xpath>
        </form>
   </field>
</record>

また

checkroll.daily.update.form checkroll.daily.update フォーム

xpathまたはフィールドタグを使用して、このフィールドを追加する位置を定義する必要があります

この助けを願っています

于 2013-03-18T06:15:37.523 に答える