Django——信号量

django的某些操作发生时,会发出signals,可以截获signals,并进行一些操作

下面代码是在创建新用户完成时,截获signals,把保存的明文密码修改为密文  

此app下创建signals.py 文件

from 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:
        password= instance.password
        instance.set_password(password)
        instance.save()

最后,在apps.py中导入接收函数,完成

from django.apps import AppConfig


class UsersConfig(AppConfig):
    name = 'users'
    verbose_name = '用户中心'

    def ready(self):
        import users.signals

可能信号量不生效  是因为settings配置问题 

INSTALLED_APPS = [
    'users',

修改为  这样就会加载 def ready(self): 函数   信号量才会生效

INSTALLED_APPS = [
    'users.apps.UsersConfig',

猜你喜欢

转载自blog.csdn.net/weixin_37989267/article/details/81010478