Django没有调用我的应用的ready方法

时间:2018-08-28 22:09:21

标签: django

我有一个名为 expenses 的Django项目,还有一个名为 expenseitems 的应用。在项目设置中,INSTALLED_APPS包含expenses.expenseitems。当我调用migration命令时,将按预期设置数据库并创建表。

我的最终目标是为模型创建组级权限。所以我想在迁移完成后调用一个方法。但是,尽管在运行 migrate 时调用了django.contrib.authdjango.contrib.admin的AppConfigs中的ready方法,但未调用我应用程序的 ready 方法。

这是我的apps.py:

from django.apps import AppConfig
from django.db.models.signals import post_migrate


def initialization(sender, **kwargs):
    from django.contrib.auth.models import Group, Permission
    public, created = Group.objects.get_or_create(name="public")
    if not public.permissions.filter(codename="change_expenseitems").exists():
        perm = Permission.objects.get(codename="change_expenseitems")
        public.permissions.add(perm)


class ExpenseitemConfig(AppConfig):
    name = 'expenses.expenseitems'

    def ready(self):
        post_migrate.connect(initialization, sender=self)

关于我所缺少的任何建议吗?

0 个答案:

没有答案