【问题标题】:How to apply a domain to a button?如何将域应用于按钮?
【发布时间】:2017-08-08 10:38:25
【问题描述】:

我想从按钮传递一个 默认 域以应用于目标操作。
像这样的:

<!-- action -->
<act_window id="action_target"
            name="Project Categories"
            res_model="addon.model"
            view_mode="kanban,tree,form"/>

<!-- button -->
<button class="btn btn-primary"
        type="action"
        name="%(action_target)d"
        domain="[('field_x', '=', self.id)]">
  Do Something
</button>

我现在的做法是触发一个打开新操作窗口的函数:

@api.multi
def action_target(self):
  self.ensure_one()
  return {
    'type': 'ir.actions.act_window',
    'src_model': self._name,
    'res_model': 'addon.model',
    'view_mode': 'kanban,tree,form',
    'domain': [('field_x', '=', self.id)],
    'target': 'main',
  }

我这样做的方式带来的不良行为是不会像操作按钮那样保留前一个窗口的路径:

我希望它保持这样:

如何实现?

【问题讨论】:

    标签: python xml openerp odoo-10


    【解决方案1】:

    我不太确定你到底想做什么,但我们开始吧:

    如果您想打开另一个视图,显示 field_x = self.id 的所有记录

    在您的操作的上下文中使用'search_default_field_x': self.id。这应该使用搜索集打开您的视图,查找field_x 等于self.id 的每条记录。您可能需要定义一个能够在 field_x 上搜索的搜索视图才能使其工作(如果字段不在视图中,default 将不会填充字段)。

    我认为这回答了您标题中的问题和问题的第一部分。

    如果您不想破坏面包屑:

    基于odoo 10.0 documentation

    窗口操作 (ir.actions.act_window)

    target(可选)是否应在主要内容中打开视图 区域(当前)、全屏模式(全屏)或对话框/弹出窗口 (新的)。使用 ma​​in 而不是 current 来清除面包屑。默认值 到当前。

    所以,尝试使用current 而不是new,它应该可以做你想做的事。至少,它适用于我为我的公司编写的一些代码,但这是适用于 odoo 8。由于这是默认设置,这就是它适用于您的第一个 sn-p 的原因。

    【讨论】:

      【解决方案2】:

      你应该尝试关注。

      <record id="action_target" model="ir.actions.act_window">
          <field name="name">Project Categories</field>
          <field name="res_model">addon.model</field>
          <field name="view_mode">kanban,tree,form</field>
          <field name="context">{
              'search_default_field_x': [active_id],
              'default_field_x': active_id,
              }
          </field>
      </record>
      

      您可以使用实际的上下文设置默认搜索值。更多 详细信息请参阅项目模块,在项目模块中请参阅“任务” 按钮。这和你想在这里做的一样。

      【讨论】:

        猜你喜欢
        • 2019-10-10
        • 2014-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-03
        • 2013-02-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多