post-migrate信号用于在执行migrate之后自动执行一些过程。使用post-migrate信号需要修改三个文件。
1.首先在相应app目录下的__init__.py文件下加入下面一行:
default_app_config = 'app_name.apps.app_nameConfig'
比如app_name是system_module,则加入
default_app_config = ‘system_module.apps.SystemModuleConfig’
2.然后在app_name/management/init.py文件中定义接收到post_migrate信号要执行的过程。
from django.db.models import signals
def init_information_config(**kwargs):
from system_module.models import informationconfig
if informationconfig.objects.count()==0:
obj = informationconfig(information_num=100)
obj.save()
3.最后修改相应app文件夹下的apps.py文件
from django.apps import AppConfig
from django.db.models.signals import post_migrate
from system_module.management import init_information_config
class SystemModuleConfig(AppConfig):
name = 'system_module'
def ready(self):
post_migrate.connect(init_information_config,
dispatch_uid='system_module.init_information_config'
)