from django.views.generic import UpdateView, DetailView from django.utils.decorators import method_decorator from django.contrib.auth.decorators import login_required from .models import UserProfile from .forms import ProfileForm @method_decorator(login_required, name='dispatch') 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