Ir al contenido principal

Relaciones en modelos de Django

Formas de relacion disponibles

  • ForeignKey
  • OneToOneField
  • ManyToManyField

id = models.ForeignKey(NombreModelo, null=False, blank=False, on_delete=models.CASCADE)

id = models.OneToOneField(NombreModelo, null=False, blank=False, on_delete=models.CASCADE)

id = models.ManyToManyField(NombreModelo)

Ejemplo

from django.db import models
from django.utils.timezone import now

class Proyecto(models.Model):
    idProyecto = models.AutoField(primary_key=True, null=False, blank=False)
    titulo = models.CharField(max_length=50)
    fecha_crecion = models.DateTimeField(default=now, blank=True)
    fecha_ult_mod = models.DateTimeField(auto_now=True)

from django.db import models
from apps.proyecto.models import Proyecto
from django.utils.timezone import now

class SubTarea(models.Model):
    idSubTarea = models.AutoField(primary_key=True)
    titulo = models.CharField(max_length=50)
    fecha_crecion = models.DateTimeField(default=now, blank=True)
    fecha_ult_mod = models.DateTimeField(auto_now=True)

class Tarea(models.Model):
    idTarea = models.AutoField(primary_key=True)
    titulo = models.CharField(max_length=50)
    fecha_crecion = models.DateTimeField(default=now, blank=True)
    fecha_ult_mod = models.DateTimeField(auto_now=True)
    idProyecto = models.ForeignKey(Proyecto, null=True, blank=True, on_delete=models.CASCADE)
    idSubTarea = models.ForeignKey(SubTarea, null=True, blank=True, on_delete=models.CASCADE)

Links relevantes

Comentarios

Entradas populares de este blog

Crear Excel con C# sin librerias de Office - SpreadsheetLight

En este ejemplo se crea un archivo Excel(xlsx) con dos hojas. La libreria hay que usar es SpreadsheetLight. El codigo es de un proyecto de consola y logicamente le falta el: using SpreadsheetLight;

Cargar Archivo de texto a Sql Server con Integration Services SSIS

Script usado en el ejemplo: CREATE TABLE dbo.Personas ( idPersona INT PRIMARY KEY IDENTITY(1,1), Codigo VARCHAR(3), Nombres VARCHAR(17), Edad VARCHAR(3), Fecha VARCHAR(8), Ocupacion VARCHAR(13) ) Archivo: 001Juan Perez 02931122000Estudiante 002Juana Rosi 05301011982Profesor 003Edgar Bravo 03131121990Comerciante 004Monica Argento 04031121972Medico 005Jorge Lopez 02231121932Desocupado 006Ezequiel Bianchi 02131121987Deportista 007Pepe Argento 02731121960Actor

DataTable con C#

Crea un DataTable. Crea sus columnas, una es de tipo entero auto incremental. Carga dos registros y luego son mostrados por consola. NameSpace necesario: System.Data DataTable dt = new DataTable("Personas"); DataColumn colIdPersona = dt.Columns.Add("idPersona", typeof(Int32)); colIdPersona.AllowDBNull = false; colIdPersona.Unique = true; colIdPersona.AutoIncrement = true; colIdPersona.AutoIncrementSeed = 1; colIdPersona.AutoIncrementStep = 1; DataColumn colNombre = dt.Columns.Add("Nombre", typeof(string)); colNombre.AllowDBNull = false; dt.Columns.Add("Edad", typeof(Int16)); dt.Columns.Add("FechaNacimiento", typeof(DateTime)); dt.Rows.Add(null, "Jorge", 44, Convert.ToDateTime("31/12/1970").ToString("dd/MM/yyyy")); dt.Rows.Add(null, "Valeria", 30, Convert.ToDateTime("12/02/1986").ToString("dd/MM/yyyy")); foreach (DataRow item in dt.Rows) { Console.WriteLine(item[0])...