我正在学习如何创建 django 注册页面,并且正在创建电子邮件验证。我尝试在这里使用代码片段:
def usersignup(request):
if request.method == 'POST':
form = UserSignUpForm(request.POST)
if form.is_valid():
user = form.save(commit=False)
user.is_active = False
user.save()
current_site = get_current_site(request)
email_subject = 'Activate Your Account'
message = render_to_string('activate_account.html', {
'user': user,
'domain': current_site.domain,
'uid': urlsafe_base64_encode(force_bytes(user.pk)).decode(),
'token': account_activation_token.make_token(user),
})
to_email = form.cleaned_data.get('email')
email = EmailMessage(email_subject, message, to=[to_email])
email.send()
return HttpResponse('We have sent you an email, please confirm your email
但我不知道 uid 的用途是什么。为什么需要在验证电子邮件中对用户模型对象进行编码?
UID 用于验证,django 使用它生成一个 url 并将其发送到您的电子邮件。
UID 是用户标识符,它从数据库的 auth_user 表生成。