from django.views.generic import UpdateView, DetailView, ListView from django.views.generic.edit import CreateView, DeleteView, UpdateView from django.utils.decorators import method_decorator from django.contrib.auth.decorators import login_required from django.urls import reverse from .models import Post class PostListView(ListView): model = Post @method_decorator(login_required) def dispatch(self, *args, **kwargs): return super(PostListView, self).dispatch(*args, **kwargs) def get_queryset(self): return Post.objects.filter(user=self.request.user).order_by("-needs_update") class PostNotesView(DetailView): model = Post @method_decorator(login_required) def dispatch(self, *args, **kwargs): return super(PostNotesView, self).dispatch(*args, **kwargs) ''' class UpdateViewWithUser(UpdateView): def get_form_kwargs(self, **kwargs): kwargs = super().get_form_kwargs(**kwargs) kwargs.update({'user': self.request.user}) return kwargs class ProfileView(UpdateViewWithUser): model = UserProfile form_class = ProfileForm template_name = "accounts/change-settings.html" def get_object(self): return self.request.user.profile class SettingsListView(DetailView): model = UserProfile template_name = "accounts/profile.html" def get_object(self): return self.request.user.profile '''