Django: Como usar UpdateView con django-betterforms
Siguiendo el post anterior, ahora les mostraré cómo actualizar los registros, verán que fácil es y sin morir en el intento.
Tabla de contenido
Primer paso con UpdateView
Como bien sabemos la clase UpdateView
pide propiedades obligatorias para trabajar, pero nosotros proporcionaremos lo que ya trabajamos con CreateView
. Así que en el mismo archivo views.py
escribiremos una nueva clase con lo siguiente.
class EmpleadoUpdateView(UpdateView):
model = Empleado
form_class = EmpleadoPersonaModelForm
template_name = 'formulario.html'
def get_form_kwargs(self):
kwargs = super(EmpleadoUpdateView, self).get_form_kwargs()
kwargs.update(instance={
'persona': self.object.persona,
'empleado': self.object
})
return kwargs
Aquí casi está todo igual al CreateView
excepto el método get_form_kwargs
. Éste lo que hace es instanciar nuestro registro empleado que venga desde parámetro de url si el id es 1,2... En self.object
está la instancia empleado y lo que hacemos es asignárselo por separado a cada formulario para que se vean rellenados los campos en la vista html.
Agregamos un método más... seguro que ya lo habías visto antes....