【问题标题】:Set password field in GenericViewSet Django在 GenericViewSet Django 中设置密码字段
【发布时间】:2018-04-11 01:42:09
【问题描述】:

我想在我的一个视图中创建一个用户并存储用户密码散列。

class DetailedUserViewSet(CreateModelMixin, GenericViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    permission_classes = (AllowAny,)
    def __init__(self, *args, **kwargs):
        super(DetailedUserViewSet, self).__init__(*args, **kwargs)

    def create(self, request, *args, **kwargs):
        response_data = {'message' : 'Invalid data'}
        validated_data = self.request.data
        user = User(username=validated_data['email'], is_active=True, email=validated_data['email'])
        user.set_password = validated_data['password']
        user.save()
        profile = UserProfile(mobile=validated_data['mobile'],user=user)
        profile.save()
        token = Token.objects.get(user=user)
        response_data['message'] = 'OK'
        response_data['token'] = token.key
        return Response(response_data, status=status.HTTP_201_CREATED)

user.set_password 通常在序列化程序中使用,但在我的情况下,我还希望在我的请求中包含额外的信息,例如令牌/消息。

这似乎对我的密码字段没有任何作用。 也许我必须在我的序列化程序中这样做?如果有怎么办?

【问题讨论】:

    标签: python django django-rest-framework


    【解决方案1】:

    set_password是方法,可以这样使用:

    user = User(username=validated_data['email'], is_active=True, email=validated_data['email'])
    user.set_password(validated_data['password'])
    user.save()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-11
      • 2011-10-15
      • 1970-01-01
      • 2015-10-02
      • 1970-01-01
      • 2011-02-28
      • 2021-12-29
      • 2017-06-21
      相关资源
      最近更新 更多