Coverage for cheese/users/views.py: 100.00%
23 statements
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-16 16:36 -0700
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-16 16:36 -0700
1from django.contrib.auth import get_user_model
2from django.contrib.auth.mixins import LoginRequiredMixin
3from django.urls import reverse
4from django.views.generic import (
5 DetailView,
6 RedirectView,
7 UpdateView,
8)
10User = get_user_model()
13class UserDetailView(LoginRequiredMixin, DetailView):
14 model = User
15 # These Next Two Lines Tell the View to Index
16 # Lookups by Username
17 slug_field = "username"
18 slug_url_kwarg = "username"
21user_detail_view = UserDetailView.as_view()
24class UserUpdateView(LoginRequiredMixin, UpdateView):
25 fields = [
26 "name",
27 "bio",
28 ]
30 # We already imported user in the View code above,
31 # remember?
32 model = User
34 # Send the User Back to Their Own Page after a
35 # successful Update
36 def get_success_url(self):
37 return reverse( 1bc
38 "users:detail",
39 kwargs={"username": self.request.user.username},
40 )
42 def get_object(self):
43 # Only Get the User Record for the
44 # User Making the Request
45 return User.objects.get(username=self.request.user.username) 1bd
48user_update_view = UserUpdateView.as_view()
51class UserRedirectView(LoginRequiredMixin, RedirectView):
52 permanent = False
54 def get_redirect_url(self):
55 return reverse( 1e
56 "users:detail",
57 kwargs={"username": self.request.user.username},
58 )
61user_redirect_view = UserRedirectView.as_view()