• 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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 中文社区

[已解决] 获取Followers的User id

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
4 帖子 2 发布者 976 浏览
    • 从旧到新
    • 从新到旧
    • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 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
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
  • 登录

  • 没有帐号? 注册

  • 登录或注册以进行搜索。