如何在Odoo 10自定义模块x_dagverslag中创建预填客户的销售订单链接
在Odoo Studio中为自定义模型创建带客户预填充的销售订单跳转链接
嘿,我来帮你搞定这个需求!既然你只有Odoo Studio的GUI和开发者视图权限,咱们完全可以用Studio自带的功能实现,不用折腾复杂的后端代码。下面是详细的操作步骤:
1. 确保自定义模型有客户关联字段
首先,你的x_dagverslag模型得有一个关联到客户(res.partner)的字段——如果还没有的话,先在Studio里添加:
- 打开Odoo Studio,进入
x_dagverslag模型的表单视图编辑界面 - 点击顶部的「添加字段」按钮,选择「关联关系」类型,关联目标选「联系人(res.partner)」
- 给字段起个清晰的名字,比如
x_customer,保存这个字段
2. 创建跳转按钮(推荐方式)
用按钮来实现跳转是最直观的,而且Studio支持直接配置默认值:
- 在表单视图里找到你想放置按钮的位置(比如顶部按钮栏,或者表单内的合适区域)
- 点击「添加组件」,选择「按钮」,设置按钮显示文本为「创建销售订单」
- 点击按钮的「动作」设置项,选择「打开表单」,目标模型选「销售订单(sale.order)」
- 重点来了!在「上下文」输入框里填写以下内容,用来传递客户默认值:
(注意:如果你的客户字段不是{'default_partner_id': record.x_customer.id}x_customer,要替换成你实际的字段名) - 保存按钮设置,然后保存整个视图
3. 可选:用文本链接替代按钮
如果你更想要一个文本样式的链接,而不是按钮,可以用HTML计算字段实现:
- 在
x_dagverslag模型里添加一个新字段,类型选「HTML」,并设置为「计算字段」 - 在计算逻辑框里输入以下代码(记得替换字段名):
这段代码会在有客户时显示可点击的链接,没选客户时显示提示文本if record.x_customer: return '<a href="/web#model=sale.order&view_type=form&context=%7B%22default_partner_id%22%3A%20%22{}%22%7D" target="_blank">创建销售订单</a>'.format(record.x_customer.id) else: return '<span style="color: #999;">请先选择客户</span>' - 把这个HTML字段添加到表单视图的合适位置,保存即可
4. 测试验证
完成配置后,打开一条x_dagverslag记录,先选择好客户,然后点击按钮/链接——新的销售订单页面应该会自动填充好客户数据啦!
额外提示
- 如果需要预填充更多字段(比如销售团队、销售员),可以在上下文里添加更多
default_xxx参数,比如{'default_partner_id': record.x_customer.id, 'default_team_id': record.x_sales_team.id} - 确保当前用户有创建销售订单的权限,否则跳转后可能会遇到权限报错
内容的提问来源于stack exchange,提问作者Pelingier
相关产品推荐
相关产品推荐

