Coverage for accounts/views.py: 100.00%
29 statements
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-13 16:37 -0700
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-13 16:37 -0700
1from django.contrib.auth import get_user_model
2from django.contrib.auth.mixins import LoginRequiredMixin
3from django.contrib.messages.views import SuccessMessageMixin
4from django.urls import reverse, reverse_lazy
5from django.views.generic import (
6 CreateView,
7 DetailView,
8 RedirectView,
9 UpdateView,
10)
12from .forms import CustomUserCreationForm
14User = get_user_model()
17class SignupPageView(CreateView):
18 form_class = CustomUserCreationForm
19 success_url = reverse_lazy("login")
20 template_name = "accounts/signup.html"
23class UserDetailView(LoginRequiredMixin, DetailView):
24 model = User
25 # Tell the view to index lookups by username
26 slug_field = "username"
27 slug_url_kwarg = "username"
29 template_name = "account/user_detail.html"
32class UserUpdateView(LoginRequiredMixin, SuccessMessageMixin, UpdateView):
33 fields = [
34 "name",
35 "age",
36 "bio",
37 "country",
38 "profile_pic",
39 ]
40 model = User
41 success_message = "Your profile was updated successfully."
42 # success_message = "%(name)s's profile has been updated successfully."
44 # Send the user back to their own page after a successful update
45 def get_success_url(self):
46 return reverse( 1bc
47 "user_detail",
48 kwargs={"username": self.request.user.username},
49 )
51 def get_object(self):
52 # Only get the user record for the user making the request
53 return User.objects.get(username=self.request.user.username) 1bd
55 template_name = "account/user_form.html"
58class UserRedirectView(LoginRequiredMixin, RedirectView):
59 permanent = False
61 def get_redirect_url(self):
62 return reverse( 1e
63 "user_detail",
64 kwargs={"username": self.request.user.username},
65 )