django 如何编写ViewApi来检查来自用户的数据是否在模型中

ajsxfq5m  于 2023-05-01  发布在  Go
关注(0)|答案(1)|浏览(220)

我有模型用户和每次用户注册信号发送验证码的电子邮件
我需要在我的www.example中写些什么 www.example.com 让ApiView检查用户写入的验证码是否等于模型中的验证码,以及用户输入的代码是否等于db make is_verified = True中的代码
models.py

class User(AbstractBaseUser, PermissionsMixin):
    username = models.CharField(_('username'), max_length=255, unique=True)
    email = models.EmailField(_('email address'),
                              null=True, blank=True, unique=True)
    phone = models.CharField(_('phone number'), max_length=30,
                             null=True, blank=True, unique=True)
    date_joined = models.DateTimeField(_('date joined'), auto_now_add=True)
    is_active = models.BooleanField(_('active'), default=False)
    is_staff = models.BooleanField(_('staff'), default=False)

    is_verified = models.BooleanField(_('verified'), default=False)

    verification_code = models.CharField(max_length=30, default=generate_code)
hjqgdpho

hjqgdpho1#

这取决于您使用的DRF API视图的样式,函数或类。
例如,你可以编写一个函数视图,如文档中所示。例如:

from rest_framework.decorators import api_view
from rest_framework.response import Response

@api_view()
def confirm_user(request):
    if verification_code := request.data.get("verification_code"):
        user = User.objects.get(verification_code=verification_code)
        user.is_verified = True
        user.save()

    return Response({"message": "verified"})

可以通过更多的错误/数据处理来改进代码示例。

相关问题