在 Django 商店应用程序中,注册信号处理程序以执行某些操作,例如将商品添加到购物车。
我想用我自己的版本替换这个处理程序localsite/models.py
,即。不触及原始来源。
如果只是调用connect
方法
signals.satchmo_cart_add_verify.connect(my_veto_out_of_stock)
自定义处理程序附加到当前接收者列表中,原始处理程序仍会执行操作:
print signals.satchmo_cart_add_verify.receivers
"""
[((140073113515864, 140073319632416), <weakref at 0x7f65502c1aa0;
to 'function' at 0x7f65502c7758 (veto_out_of_stock)>),
((140073114981632, 140073319632416), <weakref at 0x7f65504295d0;
to 'function' at 0x7f655042d500 (my_veto_out_of_stock)>)]
"""
我可以提前删除原始处理程序
for hnd in signals.satchmo_cart_add_verify.receivers:
del hnd
但发现它丑陋和骇人听闻。
那么替换信号处理程序的正确方法是什么?
谢谢