Python 在odoo 10中,使用UI我无法获得我的;服务器操作+;“自动操作”;工作

Python 在odoo 10中,使用UI我无法获得我的;服务器操作+;“自动操作”;工作,python,odoo-10,Python,Odoo 10,我的任务中有“审阅者”字段,当任务从“进行中”阶段移动到“审阅”阶段时,我希望自动将审阅者与任务受让人切换。我的服务器操作中包含以下Python代码: 下面是指向我的自动操作设置图片的链接: 不幸的是,将任务阶段更改为“审阅”并不能得到预期的结果。有什么建议吗 Kazu我猜您错误地调用了要获取的字段 # Instead of this a = self.res.users.reviewer_id.name b = self.res.users.user_id.name record['re

我的任务中有“审阅者”字段,当任务从“进行中”阶段移动到“审阅”阶段时,我希望自动将审阅者与任务受让人切换。我的服务器操作中包含以下Python代码:

下面是指向我的自动操作设置图片的链接:

不幸的是,将任务阶段更改为“审阅”并不能得到预期的结果。有什么建议吗


Kazu

我猜您错误地调用了要获取的字段

# Instead of this
a = self.res.users.reviewer_id.name
b = self.res.users.user_id.name
record['res.users.user_id.name']=a
record['res.users.reviewer_id.name']=b

# Try this
# You don't need to update the name, you need to update the database ID reference
record['user_id'] = record.reviewer_id.id
record['reviewer_id'] = record.user_id.id
此外,你为什么不试着用一个代替呢

如果仍然存在问题,可以使用在方法中触发
set\u trace
,从而更轻松地调试代码

def assignrev(self):
    # Triggers a break in code so that you can debug
    import ipdb; ipdb.set_trace()
    for record in self:
        # Test line by line with the terminal to see where your problem is

好的,我终于找到了答案。以下是Odoo 10上下文中的代码图片:

不需要“记录”的“定义”:代码将不会运行

我只是希望这会对其他人有所帮助


Kazu

谢谢你的回答,travisw,问题是,正如你在图片中看到的,我使用的是动作服务器pyhton代码,这似乎是有限的。当我尝试“从odoo导入api”以使用onchange方法时,我得到了一个错误:在u。我觉得我只能使用精简版的python…而且,按照您的第一个建议更改语法也没有产生任何结果。不幸的是…我想我必须更多地研究Odoo的模块@ンドング一信我的答案实际上是假设您是用Python编程的,而不是直接在服务器操作上。服务器操作的方式必须有所不同。我将尝试更新我的答案,并提供详细信息。至少,您不需要任何
@api
调用,也不需要
def…:
语句。你好,特拉维斯,新年快乐。服务器操作中的python语法有什么新的内容吗?这个问题仍然没有答案吗?我读到服务器操作python代码框中只能使用简单的python代码:多简单?我必须在语法中更改什么?关于这个主题的文档几乎没有。。。
@api.multi
def onchange_state(self):
    for record in self:
        if record.stage_id.name == 'Review':
            record.update({
                'user_id': record.reviewer_id.id,
                'reviewer_id': record.user_id.id,
            })
def assignrev(self):
    # Triggers a break in code so that you can debug
    import ipdb; ipdb.set_trace()
    for record in self:
        # Test line by line with the terminal to see where your problem is