首先说明,代码严格按照下载的源码复制粘贴,没有拼写错误问题。
爬坑过程:
1、首先,跟着视频演示,在users的Serializer里重载了create方法,改写password的加密保存,运行成功,没有问题。
2、然后创建signals.py文件,重写了create_user方法,在apps.py里import signals,运行,没有效果,signal没有被触发。
3、查看了django官方文档,照着官网的示例,写了一个request_finished的触发过程,运行也没有触发。
from django.core.signals import request_finished from django.dispatch import receiver @receiver(request_finished)def my_callback(sender, **kwargs): print("Request finished!")
4、查了半天stack overflow,有个大牛说要在users的__init__.py里import users.signals,加上,运行成功,打印了Request finished!,说明信号被触发了。
5、ok,换回老师的代码,编译,但编译错误。提示:
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
6、捣鼓半天,发现只要引入get_user_model就会出错,不引入不出错。
7、或者删除__init__.py里import users.signals,也不会出错,但运行后信号不能被触发。
8、彻底崩溃,老师救我。
Django REST framework课程视频,RESTFul API前后端分离开发
了解课程