from django.urls import reverse_lazy
from django.http.response import HttpResponseBadRequest
from django.views.generic import FormView

from profiles.forms import UserProfileForm


class ProfileFormView(FormView):
    form_class = UserProfileForm
    template_name = "profiles/settings_form.html"
    success_url = reverse_lazy("profiles:profile_settings")

    def get_form_kwargs(self):
        """Passes the request object to the form class.
        This is necessary to only display members that belong to a given user"""

        kwargs = super(ProfileFormView, self).get_form_kwargs()
        kwargs["request"] = self.request

        return kwargs

    def form_valid(self, form):
        form.save()
        return super(ProfileFormView, self).form_valid(form)
