Django auth:如何获取用户数据?

时间:2018-05-28 16:51:14

标签: django authentication django-rest-framework

我正在尝试开发一个应用程序,当用户请求只有在他登录时才会提供其他详细信息 我正在使用Django-Rest-Framework。我可以登录,获取令牌,但如何检索其他用户数据?

class BasicUserInfo(AbstractUser):
    email = models.EmailField(primary_key=True, unique=True, db_index=True)

class UserInfo(models.Model):
    user = models.ForeignKey(BasicUserInfo, on_delete=models.CASCADE)
    phoneNo = PhoneField(default="")

所以基本上如果用户请求使用GET API端点我只想发送该用户的电话号码

1 个答案:

答案 0 :(得分:0)

您可以通过request.user.is_authenticated()检查用户是否已登录,request.user将返回当前登录的用户(如果使用已登录,否则将返回AnonymousUser类的对象)

你的get方法看起来像

def get(self, request, *args, **kwargs):
    data = {}
    if request.user.is_authenticated():
        data['phone_number'] = request.user.userinfo_set.first().phoneNo

    return response.Response(data)