2017-09-17 33 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