django的某些操作发生时,会发出signals,可以截获signals,并进行一些操作
下面代码是在创建新用户完成时,截获signals,把保存的明文密码修改为密文
rom django.db.models.signals import post_save
from django.dispatch import receiver
from django.contrib.auth import get_user_model
User=get_user_model()
@receiver(post_save,sender=User)
def create_user(sender,instance=None,created=False,**kwargs):
if created:
instance.set_password(instance.password)
instance.save()
最后,在apps.py中导入接收函数,完成
from django.apps import AppConfig
class UsersConfig(AppConfig):
name = 'users'
verbose_name = "用户管理"
def ready(self):
import users.signals