Django-rest登录响应,包含更多数据



我有一个多对多关系的User和Post模型。现在在我的应用程序成功登录后,我发送请求api获取用户的帖子。我不确定发送2个单独的请求是否是最好的主意。是否有任何方法可以在成功的登录请求中提供用户帖子以及用户,访问/刷新令牌?

如果您使用的是django-rest-auth,那么只需重写REST_AUTH_SERIALIZERS:

REST_AUTH_SERIALIZERS = {
'LOGIN_SERIALIZER': 'path.to.custom.LoginSerializer',
'TOKEN_SERIALIZER': 'path.to.custom.TokenSerializer',
...
}

然后创建自定义序列化器,例如:

# serializers.py
class CustomTokenSerializer(serializers.ModelSerializer):
posts= serializers.SerializerMethodField()
def get_posts(self, instance):
return PostSerializer(instance.user.posts.all(), many=True).data
class Meta:
model = Token
fields = ('key', 'posts')
# base.py
REST_AUTH_SERIALIZERS = {
'TOKEN_SERIALIZER': 'accounts.serializer.CustomTokenSerializer'
}

请参阅官方文档。

相关内容

最新更新