gpt4 book ai didi

python - Django 如何在类上而不是在函数上使用 `` 接收器装饰器

转载 作者:行者123 更新时间:2023-12-04 14:10:58 26 4
gpt4 key购买 nike

使用 Django 信号 receiver装饰器我有以下功能。

@receiver(post_save)
def action_signal(sender, instance, created, **kwargs):
pass

是否可以使用 receiver类上的装饰器而不是函数上的装饰器? 这样做的原因是我想要一个 __init__方法等

即我怎样才能得到这样的工作......
class ActionSignals

def __init__(self):
self.stuff

@receiver(post_save)
def action_signal(sender, instance, created, **kwargs):
print(self.stuff)

最佳答案

使用 receiver类方法上的装饰器并没有真正意义。您希望什么时候实例化对象以及 __init__方法运行?

您可以对 connecting signals 使用手动方法。 , 而不是 receiver装饰器。

首先实例化对象:

action_signal = ActionSignals()

然后你可以使用 connect信号连接方法:
post_save.connect(action_signal.action_signal)

关于python - Django 如何在类上而不是在函数上使用 `` 接收器装饰器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33124723/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com