用于编辑和创建odoo的不同视图形式

时间:2014-12-16 04:30:48

标签: openerp odoo openerp-8

我想知道是否可以在odoo中为编辑模式和创建模式创建不同的表单视图?

实际上我只是想在创建模式中隐藏一些元素并以编辑模式显示它。

我试过使用像:

这样的玩家
<button name="%(print_invoice)d" string="Cetak Struk" type="action" attrs="{'invisible':[('id', '!=', False)]}" />    

但是当我打开表单时,它会给我这样的错误:

Uncaught Error: Unknown field id in domain [["id","!=",false]]    

任何帮助都将不胜感激。

谢谢

4 个答案:

答案 0 :(得分:6)

我使用attrs="{'invisible': [('id', '=', False)]}"隐藏了创建时的字段。您必须在视图中将ID作为(隐藏)字段,例如<field name="id" invisible="1" />

答案 1 :(得分:4)

您可以使用“created_at”作为红绿灯轻松解决此问题。

首先曝光该字段

# make creation date visible
create_date = fields.Date(
    'Data',
    invisible=False,
    readonly=True,
)

然后将其添加到表单并将其用于attrs属性

<field name="create_date" invisible="1" />
<ELEM attrs="{'invisible': [('create_date', '!=', False)]}">
[...]
</ELEM>

答案 2 :(得分:1)

@qatz

根据&#34;编辑&#34;您不能拥有不同的观点。或&#34;创建&#34;记录。

你可以通过添加&#34; state&#34;来尝试这个。字段并根据您可以隐藏的状态值显示元素。

希望这会有所帮助!!

答案 3 :(得分:1)

如果需要,您可以具有不同的视图来进行读取,编辑和创建

<div class="oe_read_only">
   READ ONLY
</div>
<div class="oe_edit_only" attrs="{'invisible':[('id', '=', False)]}">
   EDIT ONLY
</div>
<div attrs="{'invisible':[('id', '!=', False)]}">
   CREATE ONLY
</div>