Django中,self.context [ '请求']

时间:2018-05-22 16:45:33

标签: django

我正在研究JWT认证。这个例子对我来说并不清楚。

from django.contrib.auth import authenticate, user_logged_in

from rest_framework import serializers
from rest_framework_jwt.serializers import JSONWebTokenSerializer, jwt_payload_handler, jwt_encode_handler

class JWTSerializer(JSONWebTokenSerializer):
    def validate(self, attrs):
        credentials = {
            self.username_field: attrs.get(self.username_field),
            'password': attrs.get('password')
        }

        if all(credentials.values()):
            user = authenticate(request=self.context['request'], **credentials)

在哪里 self.context['request']来自?

1 个答案:

答案 0 :(得分:1)

在初始化期间,您可以传递给序列化程序额外的上下文。查看docs的这一部分了解详情。

默认情况下,DRF的通用视图传递了额外的上下文request对象(source code),您可以使用以下语法在序列化程序类中获取:

self.context['request']