2017-09-17 37 views
0

我正在创建一个模型(容器)的实例,并且好像pre_save函数没有被触发。Django pre_save未被触发

这是“信号”类:

class ContainerCreatedMixin(object): 
    @staticmethod 
    @receiver(pre_save, sender=Container) 
    def container_pre_save(sender, instance, **kwargs): 
     # create container folder if not created yet 
     if instance.folder_created_at is None: 
      is_folder_created = ContainerCreatedMixin().create_folder(instance) 

      if is_folder_created: 
       instance.folder_created_at = now() 

    def create_virtual_folder(self, container): 
    try: 
     ...... 
+1

您是否已将该文件导入到任何位置,以便信号被注册? –

+0

这就是我错过的!你可以把它写成答案,我会标记它。 – user2880391

回答

3

一个类中的方法使用receiver装饰并没有真正意义。

把你装饰的方法放在课堂外,如果文件被导入,它应该被注册。另外,不需要为以下创建混合。

+0

具体问题是我错过了导入。谢谢。 – user2880391