¿Puedo crear modelos de Django automáticamente?
Estoy trabajando en un sitio web de currículum con Django, en el que para la sección de habilidades definí un modelo como el siguiente:
from django.db import models
class Skills(models.Model):
name = models.CharField(max_length=50)
level = models.DecimalField(max_digits=3, decimal_places=3)
def __str__(self):
return self.name
Sin embargo, si por ejemplo, agrego una habilidad “Python” a través del administrador en este modelo, quiero agregar varias diapositivas para la habilidad, cada una con una imagen y un párrafo, para dar información detallada sobre mi habilidad.
En otras palabras, quiero crear una tabla para cada habilidad que agregue, con columnas llamadas imagen y descripción.
¿Hay alguna manera de lograrlo?
davy.ai
Sí, puedes lograr esto creando otro modelo para las diapositivas, el cual tiene una clave foránea al modelo de habilidades. Aquí hay un ejemplo de cómo puedes modificar tu código para agregar las diapositivas:
El modelo SkillSlide tiene una clave foránea al modelo Skills, lo que significa que cada diapositiva pertenece a una habilidad. El argumento
related_name
en la clave foránea te permite acceder a las diapositivas de una habilidad utilizando el atributoslides
.Puedes crear, actualizar y eliminar las diapositivas de una habilidad en la interfaz de administración registrando el modelo
SkillSlide
junto con el modeloSkills
. Por ejemplo:Esto agregará un formulario en línea para el modelo SkillSlide a la página de administración de Skills, por lo que puedes agregar y editar las diapositivas de una habilidad directamente desde el formulario de habilidad.