跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 开发与实施交流
  4. server action 调用方法无效

server action 调用方法无效

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
12 帖子 3 发布者 5.3k 浏览 2 关注中
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • W wangyuhui

    请问这个解决了吗?我也遇到了,想要return一个action。结果不能弹出窗口。

    H 离线
    H 离线
    hui
    发表于 最后由 编辑
    #3

    @wangyuhui
    我的好像是方法重名了,其他的没注意还有什么问题。

    1 条回复 最后回复
    0
    • W 离线
      W 离线
      wangyuhui
      发表于 最后由 编辑
      #4

      我用的是base.automation这个模型,和ir.actions.server还有点不一样。我要实现的是到某个状态时,自动弹出窗口,base.automation触发不了窗口弹出。

      H 1 条回复 最后回复
      0
      • W wangyuhui

        我用的是base.automation这个模型,和ir.actions.server还有点不一样。我要实现的是到某个状态时,自动弹出窗口,base.automation触发不了窗口弹出。

        H 离线
        H 离线
        hui
        发表于 最后由 编辑
        #5

        @wangyuhui 贴下代码看看吧。

        1 条回复 最后回复
        0
        • W 离线
          W 离线
          wangyuhui
          发表于 最后由 digitalsatori 编辑
          #6
          < record id="sync_method" model="base.automation">
                  < field name="name">Synchronize</field>
                  < field name="model_id" ref="crm.model_crm_lead"/>
                  < field name="trigger">on_write</field>
                  < field name="filter_pre_domain" eval="[('stage_id', '=', ref('crm.stage_lead4'))]"/>
                  < field name="filter_domain" eval="[('stage_id', '=', ref('crm.stage_lead4'))]"/>
                  < field name="active" eval="True"/>
                  < field name="state">code</field>
                  < field name="code">
          if records:
              action = records.sync()
                  < /field>
              < /record>
          
          @api.multi
              def sync(self):
                  action = self.env.ref('my_crm.action_my_crm').read()[0]
                  wizard_id = self.env['my_crm'].create({'lead_id': self.id})
                  action['views'] = [(self.env.ref('my_crm.view_form_my_crm').id, 'form')]
                  action['res_id'] = wizard_id.id
                  return action
          
          H D 2 条回复 最后回复
          0
          • W wangyuhui
            < record id="sync_method" model="base.automation">
                    < field name="name">Synchronize</field>
                    < field name="model_id" ref="crm.model_crm_lead"/>
                    < field name="trigger">on_write</field>
                    < field name="filter_pre_domain" eval="[('stage_id', '=', ref('crm.stage_lead4'))]"/>
                    < field name="filter_domain" eval="[('stage_id', '=', ref('crm.stage_lead4'))]"/>
                    < field name="active" eval="True"/>
                    < field name="state">code</field>
                    < field name="code">
            if records:
                action = records.sync()
                    < /field>
                < /record>
            
            @api.multi
                def sync(self):
                    action = self.env.ref('my_crm.action_my_crm').read()[0]
                    wizard_id = self.env['my_crm'].create({'lead_id': self.id})
                    action['views'] = [(self.env.ref('my_crm.view_form_my_crm').id, 'form')]
                    action['res_id'] = wizard_id.id
                    return action
            
            H 离线
            H 离线
            hui
            发表于 最后由 编辑
            #7

            @wangyuhui
            我没用过这个模型,我没有找到base.automation这个模型啊,有个ir.cron的处理自动化的。

            W 2 条回复 最后回复
            0
            • H hui

              @wangyuhui
              我没用过这个模型,我没有找到base.automation这个模型啊,有个ir.cron的处理自动化的。

              W 离线
              W 离线
              wangyuhui
              发表于 最后由 编辑
              #8

              @hui
              https://github.com/odoo/odoo/tree/11.0/addons/base_automation
              你的代码库可能要升级了😂

              1 条回复 最后回复
              0
              • W wangyuhui
                < record id="sync_method" model="base.automation">
                        < field name="name">Synchronize</field>
                        < field name="model_id" ref="crm.model_crm_lead"/>
                        < field name="trigger">on_write</field>
                        < field name="filter_pre_domain" eval="[('stage_id', '=', ref('crm.stage_lead4'))]"/>
                        < field name="filter_domain" eval="[('stage_id', '=', ref('crm.stage_lead4'))]"/>
                        < field name="active" eval="True"/>
                        < field name="state">code</field>
                        < field name="code">
                if records:
                    action = records.sync()
                        < /field>
                    < /record>
                
                @api.multi
                    def sync(self):
                        action = self.env.ref('my_crm.action_my_crm').read()[0]
                        wizard_id = self.env['my_crm'].create({'lead_id': self.id})
                        action['views'] = [(self.env.ref('my_crm.view_form_my_crm').id, 'form')]
                        action['res_id'] = wizard_id.id
                        return action
                
                D 离线
                D 离线
                digitalsatori
                管理员
                发表于 最后由 digitalsatori 编辑
                #9

                @wangyuhui 请用三个backtick ```包住你的代码以保持格式并实现语法高亮, 帮你改了一下。

                base.automation其本质是创建钩子程序。比如你的代码实际上会插入到write方法中执行,write方法是不能返回action的。

                [Edit] 最好不要在别人的贴子下面提问,应该开个新贴。

                【上海先安科技】(tony AT openerp.cn)

                W 1 条回复 最后回复
                0
                • D digitalsatori

                  @wangyuhui 请用三个backtick ```包住你的代码以保持格式并实现语法高亮, 帮你改了一下。

                  base.automation其本质是创建钩子程序。比如你的代码实际上会插入到write方法中执行,write方法是不能返回action的。

                  [Edit] 最好不要在别人的贴子下面提问,应该开个新贴。

                  W 离线
                  W 离线
                  wangyuhui
                  发表于 最后由 编辑
                  #10

                  @digitalsatori
                  好的,谢谢校长。
                  我换种方法去实现吧。

                  1 条回复 最后回复
                  0
                  • H hui

                    @wangyuhui
                    我没用过这个模型,我没有找到base.automation这个模型啊,有个ir.cron的处理自动化的。

                    W 离线
                    W 离线
                    wangyuhui
                    发表于 最后由 编辑
                    #11

                    @hui
                    多谢分析,我换种方法去试试吧。

                    H 1 条回复 最后回复
                    0
                    • W wangyuhui

                      @hui
                      多谢分析,我换种方法去试试吧。

                      H 离线
                      H 离线
                      hui
                      发表于 最后由 编辑
                      #12

                      @wangyuhui 客气,等你实现了分享分享。

                      1 条回复 最后回复
                      0

                      你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

                      厌倦了每次访问都刷到同样的帖子?您注册账号后,您每次返回时都能精准定位到您上次浏览的位置,并可选择接收新回复通知(通过邮件或推送通知)。您还能收藏书签、为帖子顶,向社区成员表达您的欣赏。

                      有了你的建议,这篇帖子会更精彩哦 💗

                      注册 登录
                      回复
                      • 在新帖中回复
                      登录后回复
                      • 从旧到新
                      • 从新到旧
                      • 最多赞同


                      • 登录

                      • 没有帐号? 注册

                      • 登录或注册以进行搜索。
                      • 第一个帖子
                        最后一个帖子
                      0
                      • 版块
                      • 标签
                      • 热门
                      • 用户
                      • 群组