You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Odoo记录规则中调用Python方法获取动态用户ID的可行性

Python动态获取用户ID到记录规则的可行方案

完全可以通过Python方法动态获取用户ID,你给出的示例写法['|',('user_id','=',getuserid()),('user_id','=',False)]是合法且可行的。

核心说明:

  • 原规则里的user.id是静态引用用户ID的方式,而调用自定义的getuserid()函数属于动态获取逻辑——只要这个函数能正确返回当前用户的ID值(比如从请求会话、认证上下文或者数据库查询中提取),就能替代静态的user.id,让规则自动适配当前场景的用户。
  • 执行规则时,Python会先调用getuserid()函数拿到返回值,再将其填入规则条件中,最终生成符合要求的过滤规则。

简单的getuserid()实现示例:

比如从Flask会话中提取已登录用户的ID:

def getuserid():
    from flask import session
    # 假设用户登录后,会话中存储了user_id字段
    return session.get('user_id', False)

如果是Django环境,也可以从请求对象中获取:

def getuserid():
    from django.contrib.auth import get_user
    from django.http import HttpRequest
    request = HttpRequest()
    current_user = get_user(request)
    return current_user.id if current_user.is_authenticated else False

内容的提问来源于stack exchange,提问作者shashank verma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 10:55:18