mirror of
https://github.com/cookiecutter/cookiecutter-django.git
synced 2024-12-02 06:24:06 +03:00
58 lines
1.6 KiB
Python
58 lines
1.6 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Import the reverse lookup function
|
|
from django.core.urlresolvers import reverse
|
|
|
|
# view imports
|
|
from django.views.generic import DetailView
|
|
from django.views.generic import RedirectView
|
|
from django.views.generic import UpdateView
|
|
from django.views.generic import ListView
|
|
|
|
# Only authenticated users can access views using this.
|
|
from braces.views import LoginRequiredMixin
|
|
|
|
# Import the form from users/forms.py
|
|
from .forms import UserForm
|
|
|
|
# Import the customized User model
|
|
from .models import User
|
|
|
|
|
|
class UserDetailView(LoginRequiredMixin, DetailView):
|
|
model = User
|
|
# These next two lines tell the view to index lookups by username
|
|
slug_field = "username"
|
|
slug_url_kwarg = "username"
|
|
|
|
|
|
class UserRedirectView(LoginRequiredMixin, RedirectView):
|
|
permanent = False
|
|
|
|
def get_redirect_url(self):
|
|
return reverse("users:detail",
|
|
kwargs={"username": self.request.user.username})
|
|
|
|
|
|
class UserUpdateView(LoginRequiredMixin, UpdateView):
|
|
|
|
form_class = UserForm
|
|
|
|
# we already imported User in the view code above, remember?
|
|
model = User
|
|
|
|
# send the user back to their own page after a successful update
|
|
def get_success_url(self):
|
|
return reverse("users:detail",
|
|
kwargs={"username": self.request.user.username})
|
|
|
|
def get_object(self):
|
|
# Only get the User record for the user making the request
|
|
return User.objects.get(username=self.request.user.username)
|
|
|
|
|
|
class UserListView(LoginRequiredMixin, ListView):
|
|
model = User
|
|
# These next two lines tell the view to index lookups by username
|
|
slug_field = "username"
|
|
slug_url_kwarg = "username"
|