1

这是 django rest 框架项目。这次我想将帐户激活码重新发送给注册用户(目前未激活)我写了这样的视图,但我得到服务器响应说:用户帐户被禁用......我知道用户现在被禁用但我想根据他/她的电子邮件和 ID 向他发送新的激活码..

注意:我在我的应用程序中使用 jwt 进行身份验证

这是我的观点:

对我解决这个问题有什么建议吗?关于我的观点是正确的方法吗?

class ResendActivationCode(APIView):
    permission_classes = [AllowAny]
    activation_code = code_generator()

    def get(self, request):
        print(request.user)
        capname = str('re' + request.user.id)
        iscached = cache.get(capname)
        if not iscached:
            cache.set(capname, 1, 120)
            email = request.user.email
            Profile.objects.filter(user_id=request.user.id).update(**{'activation_key': self.activation_code})
            subject = "complete you registration"
            message = "Thankyou. please enter this code to done your registration progress {}".format(self.activation_code)
            html_message = "http://localhost:4200/accounts/activation/{}".format(self.activation_code)
            froms = "mail@gmail.com"
            # html_template = render_to_string('mail/reg_mail.html', {})
            send_mail(
                subject,
                message,
                froms,
                [email],
                html_message=html_message,
                # fail_silently=False,
            )
            return Response("ok")
        else:
            return Response("time limit")

这是相关模型:(这是与用户表相关的配置文件模型,并且有activation_code字段来存储代码)

class Profile(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='profile')
    activation_key = models.CharField(max_length=200)
    bio = models.CharField(max_length=250, null=True, blank=True)
    email = models.EmailField(null=True, blank=True)
    job = models.CharField(default="",max_length=250, null=True)

服务器响应:

detail":"User account is disabled."
4

0 回答 0