Siguiendo una sintaxis relativamente simple, podemos generar modelos y compartirlos cómodamente.
[Factura]<>1-*>[LineaFactura]
Generaría el siguiente modelo:
Ahora solo queda integrarlo en tu proyecto Django para generar los diagramas de clases a partir de tus modelos. Para ello utilizaremos un comando personalizado para manage.py y una implementación realizada por https://github.com/dzhibas
Nos descargamos el proyecto https://github.com/dzhibas/django-yuml/ y lo integramos en nuestra aplicación. Personalmente me gusta definir los comandos personalizados en una aplicación llamada commands. (Más info. sobre comandos personalizados abajo)
Por lo que tendremos una estructura similar a esta:
Ahora solo queda ejecutar el comando yuml.
Algunos ejemplos:
- Generar sintaxis yuml para los modelos de una aplicación. (luego podemos copiar en la web y ver el diagrama)
$ ./manage.py yuml <aplicación>
- Generar imagen o pdf con los modelos de una aplicación
$ ./manage.py yuml <aplicación> -o <file.pdf|file.png>
- Generar imagen o pdf para todos los modelos de todas las aplicaciones
$ ./manage.py yuml -a -o <file.pdf|file.png>
Otra opción curiosa de yuml es si añadimos la opción --scruffy. Generaremos modelos con un estilo "más cool".
http://yuml.me/
https://github.com/dzhibas/django-yuml/
http://docs.djangoproject.com/en/dev/howto/custom-management-commands/
Mil gracias por el aporte, es lo más útil que he podido encontrar para hacer ingeniería inversa del código Django.
ResponderEliminarBueno cuando trato de generar mi diagarama UML a un formato, obtengo un error:
"Error: Error occured while generating .png, HTTP Error 502: Bad Gateway"
Así que genero el código de yuml direcatmebte con el comando:
python manage.py yuml mi_aplicacion
Y luego lo copio en la página http://yuml.me/ y exporto al formato deseado.