views.py
from django.urls import reverse_lazy
from django.views.generic import (
ListView,
DetailView,
CreateView,
TemplateView,
UpdateView,
DeleteView
)
# models
from .models import Empleado
# forms
from .forms import EmpleadoForm
class EmpleadoUpdateView(UpdateView):
template_name = "persona/update.html"
model = Empleado
#fields =('__all__')
fields = [
'first_name',
'last_name',
'job',
'departamento',
'habilidades',
]
success_url = reverse_lazy('persona_app:emplados_admin')
urls.py
from django.contrib import admin
from django.urls import path
from . import views
app_name = "persona_app"
urlpatterns = [
path(
'update-empleado/<pk>/',
views.EmpleadoUpdateView.as_view(),
name='modificar_empleado'
),
]
templates/persona/update.html
<div class="grid-container">
<div class="grid-x">
<h1 class="cell">
Modificar Empleado
</h1>
<div class="cell">
<form class="grid-x grid-margin-x" method="POST">{% csrf_token %}
<div class="cell large-6">
<label>Nombres:
{{ form.first_name }}
</label>
</div>
<div class="cell large-6">
<label>Apellidos:
{{ form.last_name }}
</label>
</div>
<div class="cell large-6">
<label>Trabajo:
{{ form.job }}
</label>
</div>
<div class="cell large-6">
<label>Area:
{{ form.departamento }}
</label>
</div>
<div class="cell large-6">
<label>Habilidades extra:
{{ form.habilidades }}
</label>
</div>
<div class="cell">
<button type="submit" class="success button">Guardar</button>
</div>
</form>
</div>
</div>
</div>
METHODS tambien se usa en el createview
METHOD POST Y METHOD FORMVALID
views.py
class EmpleadoUpdateView(UpdateView):
template_name = "persona/update.html"
model = Empleado
fields = [
'first_name',
'last_name',
'job',
'departamento',
'habilidades',
]
success_url = reverse_lazy('persona_app:emplados_admin')
def post(self, request, *args, **kwargs):
self.object = self.get_object()
print('************METODO POST****************')
print('=====================')
print(request.POST)
print(request.POST['last_name'])
return super().post(request, *args, **kwargs)
def form_valid(self, form):
#logica del proceso
print('************METODO form valid****************')
print('****************************')
return super(EmpleadoUpdateView, self).form_valid(form)

Última modificación: 03 Aug 2023 00:18
No hay comentarios aún
Sé el primero en comentar este artículo