【发布时间】:2016-06-10 18:10:20
【问题描述】:
除了编写自定义 django-admin 命令which is pretty well documented,我还希望能够覆盖现有命令,例如manage.py loaddata (fixture),以便在将固定装置加载到我的数据库后添加一些进一步的处理.
我想我必须编写一个自定义命令,首先调用“loaddata”,然后进行自己的处理。有没有一种巧妙的方法可以做到这一点?
有没有更好的解决方案?
【问题讨论】:
除了编写自定义 django-admin 命令which is pretty well documented,我还希望能够覆盖现有命令,例如manage.py loaddata (fixture),以便在将固定装置加载到我的数据库后添加一些进一步的处理.
我想我必须编写一个自定义命令,首先调用“loaddata”,然后进行自己的处理。有没有一种巧妙的方法可以做到这一点?
有没有更好的解决方案?
【问题讨论】:
感谢 Moses 链接到其他 SO 答案,我最终设法编写了一个模板,以便对 loaddata 命令进行额外处理。这是一个可以解决问题的 sn-p:
"""
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! :)")
不要忘记将您的应用程序放在 INSTALLED_APPS 配置中
【讨论】: