gpt4 book ai didi

django - Django pre_save 信号可以对所有派生类起作用吗

转载 作者:行者123 更新时间:2023-12-02 05:25:36 26 4
gpt4 key购买 nike

我有一个模型类“Action”,它由其他几个类扩展。我是 django 的新手,假设如果我调用 pre_save.connect(actionFunc, sender=Action) ,则只要调用 Action 类中的 save 方法(包括任何派生类),actionFunc 就会被调用。

我的观察是,只有当实例与 Sender 中定义的类类型直接匹配时,才会触发此函数。是否有办法让它也接收 Action 的所有派生实例的信号?

最佳答案

不,您必须多次调用pre_save.connect

但是,您可以使用 python 获取扩展您感兴趣的类的所有类,并循环遍历 pre_save connect 语句。

比如说,如果 Action 的扩展类都在给定文件中,您可以执行以下操作:

global_dict = globals().copy()
[el for el in global_dict.values() if getattr(el,'__base__',None)==Action]

关于django - Django pre_save 信号可以对所有派生类起作用吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3431633/

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