tryton - 创建记录后如何在 tryton 中调用自定义函数?
问题描述
创建记录后,我需要在非 tryton 数据库上执行通知。
我看到可以覆盖创建函数..但是有没有更好的解决方案可以确保在数据库提交之后?
我这样做
@classmethod def create(cls, values): newObject = super(Inventory, cls).create(values) newObject.notifieToMainServer()
问候
解决方案
是的,您可以使用tryton 事务的atexit函数在事务提交时调用函数。
所以你的代码将是这样的:
from trytond.transaction import Transaction
@classmethod
def create(cls, values):
records = super().create(values)
Transaction.atexit(notifyToMainServer)
return records
如果需要在无法发送通知时阻止事务的提交,可以通过在 Transaction 上加入一些数据管理器来使用两阶段提交协议。Tryton 默认实现了一个sendmail_transactional函数,该函数可用作实现 DataManager 以发送您的自定义通知的参考。
希望能帮助到你!
推荐阅读
- flutter - 如何从文档快照中获取 Firestore 文档 ID?
- linux-device-driver - 调整执行期间的 MMC 错误
- java - 如何修复:用于猪拉丁语翻译的 errorjava.util.regex.PatternSyntaxException
- javascript - 单击列表时显示所有数据以及图像/图标
- python - 无法设置收件人 - O365
- windows - 不能在 Windows 中使用 git(这样的文件没有这样的文件或目录)
- ionic-framework - 将离子页面添加到已创建的 Angular 应用程序 [ionic]
- c# - UWP - 如何创建具有重复图案的 CompositionSurfaceBrush
- javascript - 使用包含在 DIV 元素中的按钮滚动到页面的特定部分
- laravel - Laravel 5.8:orWhere 取消 whereHas 效果