urls get_context_data example createview based django django-views

django - get_context_data - Obtener request.session desde una vista genérica basada en clase



httpresponse django example (1)

Tiene acceso a self.request desde cualquier lugar dentro de la clase (y, por self.request.session tanto, self.request.session )

https://docs.djangoproject.com/en/dev/topics/class-based-views/generic-display/#dynamic-filtering

La parte clave para hacer que esto funcione es que cuando se llaman vistas basadas en clases, varias cosas útiles se almacenan en uno mismo; así como la solicitud (self.request), esto incluye los argumentos posicionales (self.args) y basados ​​en el nombre (self.kwargs) capturados de acuerdo con el URLconf.

¿Hay una manera de obtener request.session desde una vista basada en clases?

Por ejemplo, tengo

from django.views.generic.edit import FormView class CreateProfileView(FormView): def form_valid(self, form): # --> would like to save form contents to session here return redirect(self.get_success_url())

Lo único que puedo pensar sería anular as_view agregando

def as_view(self, request, *args, **kwargs): self.session = request.session super(CreateProfileView, self).as_view(request, *args, **kwargs)

a la clase. Pero eso parece feo. ¿Hay otra manera?