覆盖现有的django-admin命令

Geo*_* R. 8 python django

除了编写自定义Django的管理命令,这是非常有据可查的,我希望能够覆盖现有的命令,像manage.py loaddata (fixture)这样之后灯具将被装载到我的数据库,我可以添加一些进一步的治疗.

我想我必须编写一个首先调用'loaddata'的自定义命令,然后进行自己的处理.这样做有什么好办法吗?

有更好的解决方案吗?

Geo*_* R. 8

感谢摩西与其他SO答案的链接,我最终设法编写了一个模板,用于对loaddata命令进行额外处理.这是一个可以解决问题的片段:

"""
Additional treatment for the loaddata command.
Location example: project/app/management/commands/loaddata.py
"""
from django.core.management.base import BaseCommand, CommandError
from django.core.management.commands import loaddata


class Command(loaddata.Command):

    def handle(self, *args, **options):
        super(Command, self).handle(*args, **options)
        self.stdout.write("Here is a further treatment! :)")
Run Code Online (Sandbox Code Playgroud)

不要忘记将您的应用程序放在INSTALLED_APPS配置的顶部

  • 编辑:由于超级调用,前面的代码不起作用,并且提到了 INSTALLED_APP 顺序 (2认同)