这是 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."