请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于信号量方法不被触发的问题

首先说明,代码严格按照下载的源码复制粘贴,没有拼写错误问题。

爬坑过程:

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、彻底崩溃,老师救我。

正在回答 回答被采纳积分+3

3回答

Luogjy 2018-11-19 21:22:56

这个问题我也遇到了,我的解决方案是在settings的INSTALLED_APPS里不要用users添加,换成users.apps.UsersConfig

1 回复 有任何疑惑可以回复我~
  • 我也碰到了这个问题,楼上正解
    回复 有任何疑惑可以回复我~ 2019-01-23 15:05:57
  • Louis0o #2
    同样遇到这个问题,INSTALL_APPS中users换成users.apps.UsersConfig
    回复 有任何疑惑可以回复我~ 2019-04-05 22:57:41
Q753456 2020-09-24 08:33:16

我的解决方案是在settings的INSTALLED_APPS里不要用users添加,换成users.apps.UsersConfig

0 回复 有任何疑惑可以回复我~
bobby 2018-07-25 18:28:31

http://apply.projectsedu.com/ 你到这里申请加入github源码 下载我提供的源码试试,django用1.11

0 回复 有任何疑惑可以回复我~
  • 我的django是2.2版本的,按照楼上说的把INSTALL_APPS中users换成users.apps.UsersConfig,运行会报下面的错误  "INSTALLED_APPS." % (module, name)
    RuntimeError: Model class users.models.UserProfile doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
    回复 有任何疑惑可以回复我~ 2019-11-09 10:34:04
  • 你在users这个apps下面的__init__.py文件中加上 default_app_config = "users.apps.UsersConfig 试试
    回复 有任何疑惑可以回复我~ 2019-11-11 11:34:36
  • 不行,还是报同样的错误
    回复 有任何疑惑可以回复我~ 2019-11-11 21:06:21
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信