47 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from django.core.urlresolvers import reverse
 | 
						|
from django.views.generic import DetailView, ListView, RedirectView, UpdateView
 | 
						|
 | 
						|
from django.contrib.auth.mixins import LoginRequiredMixin
 | 
						|
 | 
						|
from django.contrib.auth import get_user_model
 | 
						|
 | 
						|
 | 
						|
class UserDetailView(LoginRequiredMixin, DetailView):
 | 
						|
    model = get_user_model()
 | 
						|
    # These next two lines tell the view to index lookups by username
 | 
						|
    slug_field = 'username'
 | 
						|
    slug_url_kwarg = 'username'
 | 
						|
 | 
						|
    def get_object(self):
 | 
						|
        return get_user_model().objects.get(username=self.request.user.username)
 | 
						|
 | 
						|
 | 
						|
class UserRedirectView(LoginRequiredMixin, RedirectView):
 | 
						|
    permanent = False
 | 
						|
 | 
						|
    def get_redirect_url(self):
 | 
						|
        return reverse('profile:detail')
 | 
						|
 | 
						|
 | 
						|
class UserUpdateView(LoginRequiredMixin, UpdateView):
 | 
						|
 | 
						|
    fields = ['first_name', 'last_name']
 | 
						|
 | 
						|
    # we already imported User in the view code above, remember?
 | 
						|
    model = get_user_model()
 | 
						|
 | 
						|
    # send the user back to their own page after a successful update
 | 
						|
    def get_success_url(self):
 | 
						|
        return reverse('profile:detail')
 | 
						|
 | 
						|
    def get_object(self):
 | 
						|
        # Only get the User record for the user making the request
 | 
						|
        return get_user_model().objects.get(username=self.request.user.username)
 | 
						|
 | 
						|
 | 
						|
class UserListView(LoginRequiredMixin, ListView):
 | 
						|
    model = get_user_model()
 | 
						|
    # These next two lines tell the view to index lookups by username
 | 
						|
    slug_field = 'username'
 | 
						|
    slug_url_kwarg = 'username'
 |