如何解决每当有人在我的网站上注册时出现的问题,在电子邮件确认之前,不应将其添加到管理页面中。但它是在电子邮件确认之前添加的。
视图.py
def register(request):
if request.method == 'POST':
form = UserRegisterForm(request.POST)
if form.is_valid():
user = form.save(commit=False)
user.is_active = False
user.save()
current_site = get_current_site(request)
mail_subject = 'Activate your Account.'
message = render_to_string('users/active_email.html', {
'user': user,
'domain': current_site.domain,
'uid':urlsafe_base64_encode(force_bytes(user.pk)),
'token':account_activation_token.make_token(user),
})
to_email = form.cleaned_data.get('email')
email = EmailMessage(
mail_subject, message, to=[to_email]
)
email.send()
return render(request, 'users/confirm_email.html')
else:
form = UserRegisterForm()
return render(request, 'users/register.html', {'form': form})
def activate(request, uidb64, token):
try:
uid = force_text(urlsafe_base64_decode(uidb64))
user = User.objects.get(pk=uid)
except(TypeError, ValueError, OverflowError, User.DoesNotExist):
user = None
if user is not None and account_activation_token.check_token(user, token):
user.is_active = True
user.save()
return render(request, 'users/confirmed_email.html')
return HttpResponse('Activation link is invalid!')
管理文件
class UserAdmin(admin.ModelAdmin):
list_filter = ('is_active',)
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
class UserAdmin(admin.ModelAdmin):
def get_queryset(self, request):
qs = super(UserAdmin, self).get_queryset(request)
return qs.filter(is_active=True)
list_filter = ('is_active',)
admin.site.register(User, UserAdmin)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句