我想知道是否可以在odoo中为编辑模式和创建模式创建不同的表单视图?
实际上我只是想在创建模式中隐藏一些元素并以编辑模式显示它。
我试过使用像:
这样的玩家<button name="%(print_invoice)d" string="Cetak Struk" type="action" attrs="{'invisible':[('id', '!=', False)]}" />
但是当我打开表单时,它会给我这样的错误:
Uncaught Error: Unknown field id in domain [["id","!=",false]]
任何帮助都将不胜感激。
谢谢
答案 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>