Django——訊號量
阿新 • • 發佈:2019-01-10
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',