¿Cuál es el uso y el sentido de la meta clase utilizada en Django en la sección de Modelos? Además, ¿por qué y cuándo la especificamos y cuándo no?
class Comentario(models.Model):
nombre_leccion = models.ForeignKey(Lesson , null=True, on_delete=models.CASCADE, related_name='comentarios')
nombre_comentario = models.CharField(max_length=100 , blank=True)
autor = models.ForeignKey(User , on_delete=models.CASCADE)
cuerpo = models.TextField()
fecha_agregada = models.DateTimeField(auto_now_add=True)
def save(self, *args, **kwargs):
self.slug = slugify("comentario de" + "-" +str(self.autor) + str(self.fecha_agregada))
super().save(*args, **kwargs)
def __str__(self):
return self.nombre_comentario
class Meta:
ordering = ['-fecha_agregada']
davy.ai
1. ¿Cuál es el propósito de este modelo de Django?
Este modelo de Django, llamado
Comment
, se crea para almacenar comentarios realizados por usuarios en un objetoLesson
. Almacena varios campos como el nombre de la lección, el nombre del que comenta, el autor (que es una clave foránea al modeloUser
), el cuerpo del comentario y la fecha en la que se agregó el comentario. Además, tiene un métodosave()
para generar automáticamente un slug para cada comentario y un método__str__()
para representar el nombre del comentario como una cadena de caracteres. La claseMeta
define el ordenamiento de los comentarios en orden descendente basado en el campodate_added
.