【问题标题】:different view form for edit and create in odoo用于在 odoo 中编辑和创建的不同视图表单
【发布时间】:2014-12-16 04:30:48
【问题描述】:

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

其实我只是想在创建模式下隐藏一些元素,在编辑模式下显示出来。

我尝试过使用类似的属性:

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

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

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

任何帮助将不胜感激。

谢谢

【问题讨论】:

    标签: openerp odoo openerp-8


    【解决方案1】:

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

    【讨论】:

    • 这是正确的!我想让一个字段只读,只是为只读设置域对我不起作用
    【解决方案2】:

    您可以通过使用“create_date”作为交通信号灯轻松解决此问题。

    第一次公开领域

    # 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>
    

    【讨论】:

    • 感谢您的回答@simahawk,它会帮助很多人。这个想法与我的有点相似,但 id 字段被替换为 create_date。但由于我的问题是问我们是否可以有不同的编辑和创建视图,所以为了保持一致性,我仍然选择 hardik 的答案。
    【解决方案3】:

    如果需要,您可以使用不同的视图进行阅读、编辑和创建

    <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>
    

    【讨论】:

    • 感谢您的回答。由于表单包裹在html标签中,我猜它只能在OpenERP 7.0及更高版本中使用吧?
    • @qatz 不确定,我只能说这适用于我正在使用的 Odoo 10 +
    【解决方案4】:

    @qatz

    您不能有基于“编辑”或“创建”记录的不同视图。

    您可以通过添加“状态”字段来尝试此操作,并根据状态值隐藏显示元素。

    希望对你有帮助!!

    【讨论】:

    • 感谢您的回答哈迪克!没错,我可以使用“状态”字段并为其提供一个默认值,该值会在用户保存表单时更改。因此,当值更改时,它将显示元素。但这种情况是另一种更简单的方法吗?所以我不应该在模型中添加任何脚本/方法。我会等待另一个答案一会儿。谢谢...:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-18
    相关资源
    最近更新 更多