django 信号的使用
django 中信号的使用记录
1,在app应用文件夹下 创建一个 signals.py的文件
2,在signals.py 文件中导入相关的python包
1 from django.db.models.signals import post_save 2 from order.models import WithDrawOrder 3 from django.dispatch import receiver, Signal 4
3,在该文件下编写相关代码:
@receiver(post_save, sender=WithDrawOrder) def create_withdraw_order(sender, instance, created, **kwargs): if created: content = '{}相关操作'.format(instance.user.username) create_dist = { "log_type": 2, "content": content, "user_id": instance.user.id, } print('信号触发')
4,编写好signals.py 文件后,进入该app应用下的 apps.py文件中 ,添加如下代码
from django.apps import AppConfig class UsersConfig(AppConfig): name = 'users' def ready(self): #项目启动时自动加载 users的signals 文件 import users.signals
5,在app应用文件夹下的 __init__.py 文件中 添加:(否则信号无法启动)
1 default_app_config = 'proxy.apps.UsersConfig'
6,结束!!