我使用信号在对象被删除后执行一个操作;然而,有时我想根据一个修改执行不同的不同的操作(不是默认操作)。在
有没有办法把一个论点传递给我的信号捕捉器?或者我将不得不放弃信号,而是硬编码我想在模型中做什么?在
我想做的是:
>>> MyModelInstance.delete()
# default pre_delete() signal is run, in this case, an email is sent
>>> MyModelInstance.delete(send_email=False)
# same signal is run, however, no email gets sent
有什么好办法吗?在
我不认为你需要在模型中硬编码你的行为-你仍然可以使用信号。但是您需要重写delete()以至少接受send_email参数,并且-因为我不认为您可以向post_delete()传递额外的参数-触发您自己的自定义信号。在
像这样:(凭记忆写作,未经测试!!!)
免责声明:不知道这是否是最好的方法。在
相关问题 更多 >
编程相关推荐