Apuntes Django

gamlerd13

Miraval Garcia

Posted on December 13, 2023

Apuntes Django

Clase Meta en los modelos:

Se usa para proporcionar metainformación y controlar la forma en como se devuelven o envian los datos.

  • Ordenar los resultados que se devuelven(ordering): En una consulta como MiModelo.objects.all(), los resultados se ordenarán alfabéticamente por el campo campo1.
class MiModelo(models.Model):
    campo1 = models.CharField(max_length=50)
    campo2 = models.IntegerField()

    class Meta:
        ordering = ['campo1']  # Ordenar resultados por campo1 de forma ascendente
Enter fullscreen mode Exit fullscreen mode
  • Personalizar nombre de la tabla(db_table): Esto cambiará el nombre de la tabla al nombre personalizado
class OtraTabla(models.Model):
    # campos del modelo

    class Meta:
        db_table = 'nombre_personalizado_tabla'

Enter fullscreen mode Exit fullscreen mode
  • Restricciones de unicidad (unique_together): Se puede especificar el conjunto de campos que pueden ser únicos, por ejemplo:
class Persona(models.Model):
    nombre = models.CharField(max_length=50)
    apellido = models.CharField(max_length=50)

    class Meta:
        unique_together = ['nombre', 'apellido']
Enter fullscreen mode Exit fullscreen mode

Esto también se puede hacer en cada campo de la siguiente manera: email = models.EmailField(unique=True)

  • Establecer un Nombre Singular Plural Personalizado: Puedes especificar un nombre plural personalizado para tu modelo. Sirve principalmente para el admin.
class Persona(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)

    class Meta:
        verbose_name = "Persona"
        verbose_name_plural = "Personas"
Enter fullscreen mode Exit fullscreen mode
  • Modelos para ser heredados por otros Modelos(abstract = True): Cuando creamos un modelo para que sea heredado por otros modelos,es decir que queremos que otros modelos compartan sus campos.
class UnpaperWorkModel(models.Model):
    # Campos comunes para varios modelos
    nombre = models.CharField(max_length=100)
    descripcion = models.TextField()

    class Meta:
        abstract = True

class ModeloEspecifico(UnpaperWorkModel):
    # Este modelo hereda los campos de UnpaperWorkModel
    campo_adicional = models.CharField(max_length=50)
Enter fullscreen mode Exit fullscreen mode
💖 💪 🙅 🚩
gamlerd13
Miraval Garcia

Posted on December 13, 2023

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related