2014-10-30 73 views
2

post_syncdb信號執行syncdb後可以完成的操作。是否有類似的鉤子在加載燈具後執行某些操作,即在命令python manage.py loaddata之後?掛鉤在loaddata命令後執行動作(加載夾具)

我有一個腳本,創建一個新的數據庫,運行遷移(syncdb)和從JSON夾具加載數據。發佈所有這些,我想爲已創建的用戶創建組&權限。我在哪裏插入代碼?

P.S.使用post_migrate而不是post_syncdb爲1.7+

回答

3

Read the source, Luke

研究post_migrate(或post_syncdb)信號是怎樣在管理命令燒製,請參見:

從我們所看到的,這裏是你應該嘗試的:

  • create a custom signal(和聽衆,你會創建組&權限)
  • create a custom management command子類loaddataCommand和壓倒一切的handle()方法:

    from django.core.management.commands.loaddata import Command 
    
    class MyCommand(Command): 
        def handle(self, *fixture_labels, **options): 
         super(MyCommand, self).handle(*fixture_labels, **options) 
    
         my_signal.send(sender=self.__class__, my_argument=my_argument_value) 
    

沒有親自測試這一點。希望對你有效。

+0

+1爲解讀源碼,盧克!瓜 :) – ChillarAnand 2014-10-30 16:54:23