【发布时间】:2017-02-27 19:43:42
【问题描述】:
django-rest-auth 在使用rest_auth.serializers.TokenSerializer 成功验证后返回一个令牌。如何覆盖此序列化程序或添加自己的序列化程序,以便在成功认证后获取用户信息(如用户名,而不是令牌密钥)?
【问题讨论】:
标签: django-rest-auth
django-rest-auth 在使用rest_auth.serializers.TokenSerializer 成功验证后返回一个令牌。如何覆盖此序列化程序或添加自己的序列化程序,以便在成功认证后获取用户信息(如用户名,而不是令牌密钥)?
【问题讨论】:
标签: django-rest-auth
我通过定义自定义序列化程序解决了这个问题。
from django.contrib.auth.models import User
from rest_framework import serializers
from rest_auth.models import TokenModel
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('username', 'email')
class TokenSerializer(serializers.ModelSerializer):
user = UserSerializer()
class Meta:
model = TokenModel
fields = ('key', 'user')
您还可以使用depth 选项轻松生成嵌套表示,但在这种情况下,您也会收到password 字段,这不是预期和预期的。
【讨论】: