如何在表单中生成自己的创建按钮?

时间:2014-10-28 08:39:30

标签: xml forms orm openerp openerp-7

我创建了一个动作类型的按钮。此按钮调用操作,此操作调用表单。这个表单完全由我创建,并且有一个创建按钮,该按钮调用创建函数,直接继承自 orm.Model (我没碰过它)。

当我点击创建时,记录完美地存储在数据库中,但后来我收到此错误:

  

文件   " /opt/openerp7/openerp_70_ocb_devel/ocb-server/openerp/osv/orm.py" ;,   第4342行,在创建中       如果vals.pop(f,None)不是None:TypeError:pop()最多需要1个参数(给定2个)

我正在寻找 vals 的内容,当我点击按钮时,创建方法似乎被调用了两次。第一次, vals 将记录的值带到字典中(好的),第二次带来列表中生成的新记录的ID,并引发错误。

我想知道为什么会发生这种情况以及如何解决这个问题。我把代码留在了这里:

调用操作的按钮:

<button name="%(res_partner_extended.action_create_res_partner_link_category)d" string="Link to category" type="action"/>

行动:

<record id="action_create_res_partner_link_category" model="ir.actions.act_window">
    <field name="name">Link to a new category</field>
    <field name="type">ir.actions.act_window</field>
    <field name="res_model">res.partner.link.category</field>
    <field name="view_type">form</field>
    <field name="view_mode">form</field>
    <field name="view_id" ref="res_partner_link_category_create_form_view"/>
    <field name="target">new</field>
</record>

表单,以及获取错误的按钮:

<record id="res_partner_link_category_create_form_view" model="ir.ui.view">
    <field name="name">res.partner.link.category.create.form</field>
    <field name="model">res.partner.link.category</field>
    <field name="type">form</field>
    <field name="arch" type="xml">
        <form string="Linked category" version="7.0">
            <group>
                <group col="2">
                    <field name="partner_id" readonly="1" options="{'no_open': True,}"/>
                    <field name="link_category_id" required="1" options="{'no_open': True}"/>
                    <field name="type" required="1"/>
                </group>
                <group col="2">
                    <field name="date" required="1"/>
                    <field name="observations"/>
                </group>
            </group>
            <footer>
                <button name="create" string="Create" type="object" class="oe_highlight"/>
                or
                <button string="Discard" class="oe_link" special="cancel" />
            </footer>
        </form>
    </field>
</record>

0 个答案:

没有答案