from django.views.generic import UpdateView
from django.contrib.messages.views import SuccessMessageMixin
from django.contrib.auth.mixins import LoginRequiredMixin

class AccountsUpdateView(LoginRequiredMixin, SuccessMessageMixin, UpdateView):

    template_name = 'accounts/user.html' 
    form_class = auth_login.CustomUserChangeForm # your own forms
    success_url = reverse_lazy('accounts:account_update_view')
    success_message = _("%(first_name)s %(last_name)s was updated successfully")
    
     # Get the object name attribute and properties in your own model
    def get_success_message(self, cleaned_data):
        return self.success_message % dict(
            cleaned_data,
            first_name=self.object.first_name,
            last_name=self.object.last_name
        )