2011-09-29 39 views
1

我正在django項目中工作。我有1個postgresql sql文件需要在db創建後只運行一次。內置Django信號不太適合我的情況。所以我嘗試編寫自定義django信號,但我不確定如何從這種情況開始。有沒有人有一個很好的指導。 ? :)如何從django捕獲創建db信號

+0

最初的SQL數據鉤子不適合你嗎? –

+0

我不確定這種方法。但我需要它只運行一次。它會按我的預期工作嗎? – vernomcrp

回答

1

Django docs on signals已經大幅改善,所以如果你還沒有看看那裏。這個過程非常簡單。

首先創建你的信號(providing_args,您可以指定將獲得通過的參數,當你以後把你的信號):

import django.dispatch 
my_signal = django.dispatch.Signal(providing_args=["first_arg", "second_arg"]) 

其次,創建一個接收器功能:

from django.dispatch import receiver 

@receiver(my_signal) 
def my_callback(sender, first_arg, second_arg, **kwargs): 
    # do something 

最後,在您的代碼中發送您的信號(self,因爲發件人只適用於您的模型類別,否則只需傳遞模型類名稱):

my_signal.send(sender=self, first_arg='foo', second_arg='bar') 
+0

由於他有一次性使用情況,您還應該指出他有關創建Command的文檔,以便他可以根據需要生成信號。 –