我有一个名为 expenses 的Django项目,还有一个名为 expenseitems 的应用。在项目设置中,INSTALLED_APPS包含expenses.expenseitems
。当我调用migration命令时,将按预期设置数据库并创建表。
我的最终目标是为模型创建组级权限。所以我想在迁移完成后调用一个方法。但是,尽管在运行 migrate 时调用了django.contrib.auth
或django.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)
关于我所缺少的任何建议吗?