Apuntes Django
Miraval Garcia
Posted on December 13, 2023
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 comoMiModelo.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
-
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'
-
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']
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"
-
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)
💖 💪 🙅 🚩
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.