【问题标题】:How to hide a field programmatically in Odoo?如何在 Odoo 中以编程方式隐藏字段?
【发布时间】:2016-03-30 23:23:51
【问题描述】:

我正在尝试为 Odoo 制作一个模块,但我不知道如何使用 python 代码隐藏字段 这条线对我不起作用:

'form_id': fields.many2one('dev.test', 'candidat', select=False,invisible=True),

我想使用python而不是xml来隐藏它,因为我没有在我的xml中声明many2one字段它只是我的测试关系中的一个简单字段,该字段将在弹出窗口中创建以创建新的“格式” .

这是建立关系的字段的定义

    'test_form_ids': fields.one2many('dev.form', 'form_id','formations'),

test_form_ids one2many field capture

这是我的编队课

class dev_form(osv.Model):
_name='dev.form'
_description='rel between test & formations'

_columns = {
    'name': fields.many2one('dev.name', 'Formation'),
  'form_id': fields.many2one('dev.test', 'candidat', select=False,invisible=True),
}

在此处突出显示我要隐藏的字段 the popup to create new formation capture

【问题讨论】:

  • 如果你想隐藏任何字段,而不是像你的情况那样写在 .xml 文件中很简单。以下链接将对您有所帮助。 stackoverflow.com/questions/27553169/…stackoverflow.com/questions/26054744/…
  • 我不明白你的解决方案,因为我在其中看不到任何 python 代码...我尝试在 python 中使用 atrrs 它也不起作用'cand_lan_id':fields.many2one(' dev.test', 'test', select=False,attrs="{'invisible':True}"'),' 你能解释一下吗
  • 如果你想通过编程隐藏字段,我们需要重写方法。您想在哪种情况下隐藏该字段?
  • 我想在没有任何条件的情况下将其从用户视图中删除,这似乎有点傻但我找不到更好的解决方案我只需要该字段来建立 one2many 关系,对不起,我是做错了吗?
  • 没有xml,是关系里面的字段

标签: python field hide openerp


【解决方案1】:

您需要打开您声明的 cand_lan_id 的视图 .xml 文件。

现在替换字段

<field name="cand_lan_id"/>

<field name="cand_lan_id" invisible="1"/>

invisible="1" 是一个属性,它将向用户隐藏您的字段。

编辑:

打开 .xml 文件,其中声明了 test_form_ids 字段。

现在替换字段

<field name="test_form_ids"/>

<field name="test_form_ids">
    <form string="Form Name">
        <field name="name"/>
        <field name="form_id" invisible="1"/>
        <!-- List of field that User want to see in form view -->
    </form>
    <tree string="Form Name" editable="bottom">
        <field name="name"/>
        <!-- List of field that User want to see as a columns -->
    </tree>
</field>

【讨论】:

  • 我了解您的解决方案,非常感谢您的帮助,但我需要在 python 中执行此操作,因为我没有任何 xml 我正在处理的字段在将要创建的关系中声明创建新产品时自动生成
  • 如果您没有在 .xml 文件中声明,则无需担心隐藏字段。仅当我们在 .xml 文件中声明时,该字段才可见。现在在您的情况下,您没有在 .xml 文件中声明意味着最终用户看不到该字段。
  • 在我的例子中是可见的。 one2many 关系为我提供了创建新产品的选项,并且关系列中的所有包含字段将在创建时自动可见。
  • 你现在可以在我的问题中看到图片
猜你喜欢
  • 2010-10-12
  • 1970-01-01
  • 2016-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-16
  • 2011-08-10
  • 2011-09-04
相关资源
最近更新 更多