如何在管理模块中创建类似于已注册模型的内容

时间:2017-02-11 19:00:14

标签: python django

我正在尝试创建一个填充数据库的应用程序。 我在所有应用程序中创建了一个名为“filldata.py”的文件。 此文件导入包。 然后我实现了一个回调函数并在包中注册 filler.register(mycallback) 我有一个通用的应用程序,我实现了一个填充数据库的终端命令。 这类似于管理模块中注册模型的实现。 此代码是终端命令的实现。他不喜欢它。我认为有更好的pythonic方式来实现这个导入

import importlib

from django.conf import settings
from django.core.management.base import BaseCommand


class Command(BaseCommand):
    def handle(self, *args, **options):
        filler = None
        for app in settings.INSTALLED_APPS:
            try:
                filler = importlib.import_module(app + '.filldata')
            except ImportError:
                pass
        if filler:
            filler.filler.sort_callbacks()
            for msg in filler.filler.fill():
                self.stdout.write(self.style.SUCCESS(msg))

0 个答案:

没有答案