odoo 后台开发(问题)
1. Views 视图
-
button 按钮 属性
type: 主要使用 action 和 object object: 指定name="模型函数" action: 指定name="%(record的id)d" context: 传入上下文参数,如设置context="{'active_id': id}" 则可以在模型文件使用环境上下文获取传入的值 active_id = self.env.context.get("active_id", 0)
-
menuitem 菜单属性
根菜单 <menuitem id="root_menu" name="XX管理" /> 子菜单 <menuitem id="xx_list_menu" name="XX设置" parent="root_menu" action="view_act" />
2. Models 模型
-
设置模型归档字段
active = fields.Boolean(string="不归档", default=True)
-
Many2one 在视图列表的展示 附加内容添加
def name_get(self): result = [] for record in self: # 后台访问 if "active_id" in self.env.context: prefix = "--" * record.dept_level result.append((record.id, "%s%s 第%s等级" % (prefix, record.name, record.dept_level))) else: # api访问 result.append((record.id, record.name)) return result
-
上下文环境变量的使用
@api.model def search_read(self, domain=None, fields=None, offset=0, limit=None, order=None): # print("search_read:", self.env.context, domain, fields) active_id = self.env.context.get("active_id", 0) if active_id > 0: domain = [("post_id", "=", active_id)] if fields and "member_id" not in fields: fields.append("member_id") data = super().search_read(domain=domain, fields=fields, offset=offset, limit=limit, order=order) return data