- Generación de clases para los modelos.
- Generar los atributos, en función al tipo asignado usa la correspondiente clase
Model Field de Djando
. - Representar herencia, en caso de no existir, por defecto hereda de
models.Model
. - Generar relaciones, añadiendo
OneToOne
,ForeingKey
yManyToMany
. - Añadir atributos
Meta
en funcion a lostags
definidos. - Añadir parámetros adicionales a los los atributos y relaciones en función a los
tags
definidos.
Para que funcione la generación de Mode Field
en función al tipo, es necesario tener en el diagrama de modelos un esquema adicional con clases llamadas como los tipos básicos.
#-*- coding: utf-8 -*-
from django.db import models
class AbstractStudent(models.Model):
class Meta:
verbose_name='foo'
type = models.CharField()
#-*- coding: utf-8 -*-
from django.db import models
from AbstractStudent import AbstractStudent
class Student(AbstractStudent):
class Meta:
verbose_name='Estudiante'
name = models.CharField(max_length=1024, verbose_name='nombre', null=True)
surname = models.CharField()
birthdate = models.DateField()
school = models.ForeingKey('School', on_delete=models.PROTECT)
teachers = models.ManyToMany('Teacher')
expedient = models.OneToOne('Expedient')
@property
def age(self, ):
pass
#-*- coding: utf-8 -*-
from django.db import models
class Teacher(models.Model):
class Meta:
pass
name = models.CharField()
speciality = models.CharField()
school = models.ForeingKey('School', related_name='teachers', on_delete=models.PROTECT)
#-*- coding: utf-8 -*-
from django.db import models
class School(models.Model):
class Meta:
pass
name = models.CharField()
address = models.CharField()
#-*- coding: utf-8 -*-
from django.db import models
class Expedient(models.Model):
class Meta:
pass
qualification = None