我通过接口创建用户之后,数据库中的密码还是明文的,用户也登录不上,是信号量没有起作用吗,为什么呢?

来源:7-13 django信号量实现用户密码修改

fbb123456

2017-10-13

通过信号量修改密码不成功

写回答

5回答

shfscut

2017-11-20

你好!遇到了同样的问题,你解决了吗?

1
0

jager_he

2019-08-05

settings  INSTALLED_APPS = ['user']

修改成

settings  INSTALLED_APPS = ['user.apps.UserConfig']

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



0
0

fbb123456

提问者

2017-10-16

from django.db.models.signals import post_save
from django.dispatch import receiver
from rest_framework.authtoken.models import Token
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()


0
0

fbb123456

提问者

2017-10-16

class UserViewset(mixins.CreateModelMixin,mixins.RetrieveModelMixin,mixins.UpdateModelMixin,viewsets.GenericViewSet):
    '''
    用户注册
    '''
    queryset = User.objects.all()
    authentication_classes = (authentication.SessionAuthentication,JSONWebTokenAuthentication)
    def get_permissions(self):
        if self.action == "retrieve":
            return [permissions.IsAuthenticated()]
        else:
            return []

    def get_serializer_class(self):
        if self.action == "create":
            return UserRegSerializer
        else:
            return UserDetailSerializer


    def create(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        user = self.perform_create(serializer)
        re_dict = serializer.data
        payload = jwt_payload_handler(user)
        re_dict["token"] = jwt_encode_handler(payload)
        re_dict["name"] = user.name if user.name else user.username

        headers = self.get_success_headers(serializer.data)
        return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)

    def get_object(self):
        return self.request.user

    def perform_create(self, serializer):
        return serializer.save()


0
0

慕斯卡0204711

2017-10-13

AppConfig中没有加载singal?

0
5
bobby
回复
fbb123456
你通过qq群找到我 然后给我发个qq消息 我看看
2017-10-17
共5条回复

Python前后端分离开发Vue+Django REST framework实战

Django REST framework课程视频,RESTFul API前后端分离开发

2906 学习 · 2491 问题

查看课程