Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class SetPasswordForm(forms.Form):
- password = forms.CharField(label="Password", widget=forms.PasswordInput)
- def __init__(self, user, *args, **kwargs):
- self.user = user
- super(SetPasswordForm, self).__init__(*args, **kwargs)
- def save(self, commit=True):
- self.user.set_password(self.cleaned_data['password'])
- if commit:
- self.user.save(update_fields=['password'])
- return self.user
- class User(BaseUser):
- activation_code = models.CharField(max_length=100, blank=True, null=True)
- activated_at = models.DateTimeField(blank=True, null=True)
- def activate(self):
- self.is_active = True
- self.activation_code = None
- self.activated_at = datetime.now()
- self.save(update_fields=['is_active', 'activation_code', 'activated_at'])
- class ActivateUserView(View):
- def post(self, request, activation_code):
- try:
- user = User.objects.get(activation_code=activation_code)
- except User.DoesNotExist:
- return Http404()
- form = SetPasswordForm(user=user, data=request.POST)
- if form.is_valid():
- user = form.save(commit=False)
- user.activate()
- return render(request, 'users/activate_user_done.html', {'user': user})
- return render(request, self.template_name, {'user': user})
Add Comment
Please, Sign In to add comment