问题描述
假设在 odoo 表单中,我有一个按钮。此按钮将触发 odoo 后端中的 python 方法来搜索 PIC,然后将 PIC 的 phone_number
转发/复制到用户的设备,以便用户可以使用他们的设备拨打 PIC
。>
令人担忧的是,PIC 正在加班更换。我的意思是,图片将是 根据班次安排。所以,如果我附上 PIC 或电话号码 表单视图,它会出现问题:用户将打开表单视图, 花点时间查看数据,滚动片刻,然后单击 在另一分钟调用图片,但现在图片可能不同。这就是为什么 我需要用python的方式实现它。
它就像<href="tel:">
中的html
,但我需要先搜索phone_number
。
def search_n_call_pic(self,input):
# search the responsible_pic
pic_object = self.search_pic(input)
# get the pic's phone number
pic_phone_number = pic_object.phone
self.forward_this_phone_number_to_user_device(pic_phone_number)
我需要实现这个方法"forward_this_phone_number_to_user_device
",以便它具有与使用 html 相同的行为:
<a href="tel:pic_phone_number">pic_phone_number</a>
但我必须在 python
中实现它。
请帮忙,谢谢。
解决方法
假设您在 pic_phone_number
模型上有 res.users
字段。并且您想在模型 tel:
上显示 crm.lead
URI。
首先,您必须在模型 crm.lead
上创建一个新的计算域:
pic_phone_number_uri = fields.Char(compute="_compute_pic_phone_number_uri")
def _compute_pic_phone_number_uri(self):
user_phone = self.env.user.pic_phone_number
user_uri = "tel:{}".format(user_phone)
for record in self:
record.pic_phone_number_uri = user_uri
现在只需将此字段添加到带有小部件 url
的表单视图中。
<field name="pic_phone_number_uri" widget="url" readonly="1" />
如果您使用的是 Odoo 13 或更高版本,您可以使用 phone
小部件并且可以跳过在计算中添加 tel:
:
<field name="pic_phone_number_uri" widget="phone" readonly="1" />