如何解决Django 管理员在正确的凭据后卡在加载页面
我最近开始遇到一个问题,当我尝试登录管理界面时,在输入正确的凭据后,它卡在登录页面上,并且没有重定向到管理界面,我想知道突然发生了什么导致这个问题?
当我输入错误的凭据时,它会将我重定向到管理员并显示一条错误消息,但是,当我输入正确的凭据时,它会卡在页面上。
我使用的是 Django 版本 3 和 Python 版本 3.8,之前我没有遇到过这个问题,直到最近才发生。
编辑
我想补充一点,现在用户登录也存在问题,这突然发生了,我没有从控制台或页面本身收到任何错误。
我注意到 login()
函数是导致问题的函数,代码卡在那里。
编辑 2
我查看了 Django 登录功能,因为我无法使用任何方法(自定义登录、allauth、登录...)登录应用程序
查看源代码后,似乎问题出在信号上:
user_logged_in.send(sender=user.__class__,request=request,user=user)
print("should be completed") # I added this line myself
我的打印语句在将近 25 分钟后没有被执行,我想知道是什么导致了这个问题?
编辑 3
我测试并注释掉该信号,并注意到现在我的用户可以成功登录。这怎么可能,我不知道是什么原因导致通过删除该信号来解决此问题
编辑 4
我仔细看了看,似乎有循环不断地发送:[(<bound method ImageField.update_dimension_fields of <django.db.models.fields.files.ImageField: image>>,None)]
我想知道是什么导致登录信号不断发送?这就是登录功能起作用的原因。
在信号类的 django.dispatcher
中,send()
函数:
return [
(receiver,receiver(signal=self,sender=sender,**named))
for receiver in self._live_receivers(sender)
]
以下是我的自定义用户模型字段:
class Profile(AbstractUser):
bio = models.TextField()
image = models.ImageField(
default="defaults/user/default_u_i.png",upload_to=upload_to_uuid("profile_image/profiles/"),blank=True,)
full_name = models.TextField(validators=[MaxLengthValidator(300)],null=True,blank=True)
sv = pg_search.SearchVectorField(null=True)
objects = ProfileManager()
class Meta:
indexes = [
GinIndex(fields=["sv"],name="search_idx_user"),]
def save(self,*args,**kwargs):
self.username = self.username.strip().lower()
super(Profile,self).save(*args,**kwargs)
这是我唯一使用 ImageField 保存图像的自定义模型。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。