2

post_syncdb信号可以在 syncdb 之后执行可以执行的操作。在加载固定装置后,即在命令之后,是否有类似的钩子来执行一些操作python manage.py loaddata

我有一个脚本,可以创建一个新数据库、运行 migrate (syncdb) 并从 JSON 设备加载数据。发布所有这些,我想为已创建的用户创建组和权限。我在哪里插入该代码?

PS 使用post_migrate而不是post_syncdb1.7+

4

1 回答 1

4

阅读来源,卢克

研究如何在管理命令中触发post_migrate(或post_syncdb)信号,请参阅:

根据我们所见,您应该尝试以下方法:

  • 创建一个自定义信号(和侦听器,您将在其中创建组和权限)
  • 创建自定义管理命令的子类化loaddata Command和覆盖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)
    

没有亲自测试过这个。希望对你有效。

于 2014-10-30T15:30:06.787 回答