用户中心个人信息

前端访问个人信息页面时,需要向后端请求个人信息。

在本页面中要显示用户的Email邮箱信息,而对于邮箱信息我们要实现对于邮箱的验证功能,并在本页面中显示邮箱是否已验证,如下所示,

个人信息页面

所以我们需要修改User模型类,增加邮箱是否验证的字段。

class User(AbstractUser):
    """
    用户信息
    """
    mobile = models.CharField(max_length=11, unique=True, verbose_name="手机号")
    email_active = models.BooleanField(default=False, verbose_name='邮箱验证状态')

进行数据库迁移

python manage.py makemigrations
python manage.py migrate

后端接口设计:

请求方式: GET /user/

请求参数: 无

返回数据: JSON

返回值类型是否必须说明
id int 用户id
username str 用户名
mobile str 手机号
email str email邮箱
email_active bool 邮箱是否通过验证

在users/serializers.py中创建序列化器

class UserDetailSerializer(serializers.ModelSerializer):
    """
    用户详细信息序列化器
    """
    class Meta:
        model = User
        fields = ('id', 'username', 'mobile', 'email', 'email_active')

在users/views.py 中新建视图

from rest_framework.permissions import IsAuthenticated

class UserDetailView(RetrieveAPIView):
    """
    用户详情
    """
    serializer_class = serializers.UserDetailSerializer
    permission_classes = [IsAuthenticated]

    def get_object(self):
        return self.request.user

注意:访问视图必须要求用户已通过认证(即登录之后)

posted @ 2018-07-30 21:54  程序视界  阅读(444)  评论(0编辑  收藏  举报