大致情况:
有2个model: Host和Project;host属于project
今天写了个signal,想在Host类,save时,根据条件判断,自动加入project。
结果发现在post_save的receive装饰的函数内,无论是host.project=project 还是project.host_set.add(host),**在signal中都无法成功**。
也没查到signal文档中有提到这样是不行的。
后来尝试在post_save的receive中,host.save(),报了以下错误
Runtime Error: Maximum recursion depth exceeded
估计和类重复嵌套有关,所以不允许在signal内再次操作所触发的对象。
最后这个场景放弃使用signal。