django rest Объект класса сериализатора JSONWebTokenAPIView не имеет атрибута 'object' - PullRequest
0 голосов
/ 12 февраля 2019

Я расширяю JSONWebTokenAPIView с rest_framework_jwt до моего пользовательского представления:

class UserLogin(JSONWebTokenAPIView):

     serializer_class = serializers.AdabaziUserLoginJWT

, и вот мой пользовательский класс сериализатора:

class AdabaziUserLoginJWT(serializers.Serializer):
    username = serializers.CharField()
    password = serializers.CharField(style = {'input-type':'password'})
    status = serializers.SerializerMethodField(method_name='show_status')
    #token = serializers.CharField(read_only=True)

    class Meta():
        model = Adabazi_user
        fields = ('status')

    def show_status(self,obj):
        return obj.status

    def validate(self,attrs):

        credentials={
        'username' : attrs.get('username'),
        'password' : attrs.get('password')
        }

        user = authenticate(**credentials)
        if user :
            if user.is_active:
                ada_user = Adabazi_user.objects.get(user=user)
                if ada_user.status ==1:
                    ada_user.status = 2 #user is logged in right now
                    ada_user.updated_at = timezone.now()
                    user.last_login = timezone.now()
                    payload = jwt_payload_handler(user)
                    token = jwt_encode_handler(payload)
                    return {
                            'token':token,
                            'user':user,
                            'adabazi_user' : ada_user}
                else:
                    raise serializers.ValidationError('User is already logged in.')
            else:
                raise serializers.ValidationError('Account is deactivated.')
        else:
            raise serializers.ValidationError('User credentials failed.')

    def create(self,validated_data):
        user = validated_data['user']
        adabazi_user = validated_data['adabazi_user']
        user.save()
        ada_user.save()
        return ada_user

, но когда я хочу POST username и password до localhost/api/user/login/, который этот URL связан с моим представлением;эта ошибка произошла:

в этой строке кода post метод JSONWebTokenAPIView делает ошибку user = serializer.object.get('user') or request.user

Exception Value: 'AdabaziUserLoginJWT' object has no attribute 'object'


как я могуполучить доступ к атрибуту объекта экземпляра сериализатора?есть ли вообще какой-либо атрибут объекта для сериализаторов?

...