models.py
from django.db import models
from ckeditor.fields import RichTextField
#
from applications.departamento.models import Departamento
class Habilidades(models.Model):
hablidad = models.CharField('Habilidad', max_length=50)
class meta:
verbose_name = 'Habilidad'
verbose_name_plural = 'Habilidades Empleados'
def __str__(self):
return str(self.id) + '-' + self.hablidad
# Create your models here.
class Empleado(models.Model):
""" Modelo para tabla empleado """
JOB_CHOICES = (
('0', 'CONTADOR'),
('1', 'ADMINISTRADOR'),
('2', 'ECONOMISTA'),
('3', 'OTRO'),
)
first_name = models.CharField('Nombres', max_length=60)
last_name = models.CharField('apellidos', max_length=60)
full_name = models.CharField(
'Nombres completos',
max_length=120,
blank=True
)
job = models.CharField('Teabajo', max_length=1, choices=JOB_CHOICES)
departamento = models.ForeignKey(Departamento, on_delete=models.CASCADE)
avatar = models.ImageField(upload_to='empleado', blank=True, null=True)
habilidades = models.ManyToManyField(Habilidades)
hoja_vida=RichTextField()
class Meta:
verbose_name = 'Mi Empleado'
verbose_name_plural = 'Empleados de la empresa'
ordering = ['-first_name', 'last_name']
unique_together = ('first_name', 'departamento')
def __str__(self):
return str(self.id) + '-' + self.first_name + '-' + self.last_name
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 ListHabilidadesEmpelado(ListView):
template_name = 'persona/habilidades.html'
context_object_name = 'habilidades'
def get_queryset(self):
empleado = Empleado.objects.get(id=1)
return empleado.habilidades.all()
urls.py
path('lista-habilidades-empleado/',
views.ListHabilidadesEmpelado.as_view(),
name='',
),
templates/persona/habilidades.html
<h1>Habilidades de empelado</h1>
<ul>
{% for h in habilidades %}
<li>{{ h }}</li>
{% endfor %}
</ul>

Última modificación: 03 Jan 2023 21:39
No hay comentarios aún
Sé el primero en comentar este artículo