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

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

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 开发与实施交流
  4. [已解决] 获取Followers的User id

[已解决] 获取Followers的User id

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
4 帖子 2 发布者 1.2k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • H 离线
    H 离线
    hui
    写于 最后由 hui 编辑
    #1

    获取当前单据的Followers的id,使用self的什么属性直接可以获取到。

    H 1 条回复 最后回复
    0
    • H 离线
      H 离线
      hui
      在 回复了 hui 最后由 hui 编辑
      #2

      @hui
      获取mail.follower对象self.message_follower_ids
      或者下面的也是获取的mail.follower对象

      followers = self.env['mail.followers'].sudo().search([
                  ('res_model', '=', self._name),
                  ('res_id', '=', self.id)])
      

      但是followers并不一定是users。

      疑问:不知道mail.follower中的partner_id是什么作用,这个res_id应该是当前单据的id吧。

      获取Followers中的User 好像没有一步到位的方法,官方也没有提供对应的方法或者属性可用。只能自己写了:

      follower_partner_ids = self.message_follower_ids.mapped('partner_id').ids
              for partner_id in follower_partner_ids:
                  if partner_id:
                      follower_users_ids = self.env['res.users'].search([('partner_id', '=', partner_id)]).ids
                      
      
      1 条回复 最后回复
      1
      • JoshuaJ 离线
        JoshuaJ 离线
        Joshua 管理员
        写于 最后由 编辑
        #3
            # Note. There is no integrity check on model names for performance reasons.
            # However, followers of unlinked models are deleted by models themselves
            # (see 'ir.model' inheritance).
            res_model = fields.Char(
                'Related Document Model Name', required=True, index=True)
            res_id = fields.Integer(
                'Related Document ID', index=True, help='Id of the followed resource')
            partner_id = fields.Many2one(
                'res.partner', string='Related Partner', ondelete='cascade', index=True)
            channel_id = fields.Many2one(
                'mail.channel', string='Listener', ondelete='cascade', index=True)
            subtype_ids = fields.Many2many(
                'mail.message.subtype', string='Subtype',
                help="Message subtypes followed, meaning subtypes that will be pushed onto the user's Wall.")
        

        mail.follower关联res.partner,因为关注者不一定是系统的登录用户,他们只需要通过邮件收到对应的信息就可以了。
        res_id 就是关联的单据id。
        res_model是关联的单据模型。

        【上海先安科技】(joshua AT openerp.cn),欢迎关注公众号:openerp_cn

        H 1 条回复 最后回复
        0
        • H 离线
          H 离线
          hui
          在 回复了 Joshua 最后由 编辑
          #4

          @joshua
          懂了,谢谢。实际应该从我写的例子里面就可以看出来啦。

          1 条回复 最后回复
          0

          • 登录

          • 没有帐号? 注册

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