working code for form submission

This commit is contained in:
David Kennedy 2024-05-15 08:13:19 -04:00
parent f34da8029a
commit b77b5ae689
No known key found for this signature in database
GPG key ID: 6528A5386E66B96B
3 changed files with 52 additions and 9 deletions

View file

@ -4,7 +4,10 @@
import logging
from django.contrib import messages
from django.views.generic.edit import FormMixin
from registrar.forms.user_profile import UserProfileForm
from django.urls import reverse
from registrar.models import (
User,
Contact,
@ -15,7 +18,7 @@ from registrar.views.utility.permission_views import UserProfilePermissionView
logger = logging.getLogger(__name__)
class UserProfileView(UserProfilePermissionView):
class UserProfileView(UserProfilePermissionView, FormMixin):
"""
Base View for the Domain. Handles getting and setting the domain
in session cache on GETs. Also provides methods for getting
@ -38,13 +41,39 @@ class UserProfileView(UserProfilePermissionView):
logger.info(context)
return self.render_to_response(context)
# def get_context_data(self, **kwargs):
# logger.info("in get_context_data")
# kwargs.setdefault("view", self)
# if self.extra_context is not None:
# kwargs.update(self.extra_context)
# return kwargs
def get_success_url(self):
"""Redirect to the overview page for the domain."""
return reverse("user-profile")
# def post(self, request, *args, **kwargs):
# # Handle POST request logic here
# form = self.get_form()
# if form.is_valid():
# # Save form data or perform other actions
# return HttpResponseRedirect(reverse('profile_success')) # Redirect to a success page
# else:
# # Form is not valid, re-render the page with errors
# return self.render_to_response(self.get_context_data(form=form))
def post(self, request, *args, **kwargs):
self.object = self.get_object()
form = self.get_form()
form.instance.id = self.object.id
form.instance.created_at = self.object.created_at
form.instance.user = self.request.user
if form.is_valid():
return self.form_valid(form)
else:
return self.form_invalid(form)
def form_valid(self, form):
form.save()
messages.success(self.request, "Your profile has been updated.")
# superclass has the redirect
return super().form_valid(form)
# Override get_object to return the logged-in user
def get_object(self, queryset=None):
logger.info("in get_object")