前端访问个人信息页面时,需要向后端请求个人信息。
在本页面中要显示用户的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 | 是 | 手机号 |
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
注意:访问视图必须要求用户已通过认证(即登录之后)