on_apply 事件
当在 客户端 或
服务端 调用项目的 apply 方法时,
服务器应用程序默认会根据对数据集所做的更改生成 SQL 查询语句并执行。
可以通过在实体项的服务端模块中编写 on_apply 事件处理程序来更改此行为。
有时需要在保存更改时为所有实体项执行一些代码。
在这种情况下,可以使用任务的 on_apply 事件处理程序(在任务服务端模块中声明)。
以下代码描述了如何处理这些事件:
#...
result = None
if self.task.on_apply:
result = self.task.on_apply(self, delta, params, connection)
if result is None and self.on_apply:
result = self.on_apply(self, delta, params, connection)
if result is None:
result = self.apply_delta(delta, params, connection)
#...
return result
它会检查任务是否有 on_apply 事件处理程序。
如果在任务服务器模块中声明了 on_apply 事件处理程序,那么它会被执行。
如果任务的 on_apply 事件处理程序未声明或事件处理程序的结果返回 None,该方法会检查实体项是否有 on_apply 事件处理程序。如果在实体项服务端模块中声明了,则它会被执行。
如果实体项事件处理程序返回的结果是 None ,则调用实体项的 apply_delta 方法,该方法会生成 SQL 查询,并在执行后返回查询结果。