Погуглил и решил что на данном этапе меня вполне устроят возможности django_extensions.
В базовые возможности данного приложение входит команда graph_models из модуля GraphModels.
Но обо всем по-порядку: У данного приложения есть зависимости поэтому в начале нужно установить pygraphviz
В gentoo я это делаю так:
$ emerge dev-python/pygraphviz
хотя вполне можно обойтись универсальным методом:
$ easy_install pygraphviz
Далее нужно установить django_extensions
Можно установить его стандартно:
$ cd django-command-extensions
$ python setup.py install
Но я предпочитаю, чтобы все от чего зависит проект было вместе с проектом, поэтому я поступаю так:
$ cd project_root
$ hg clone http://hgsvn.trbs.net/django-command-extensions/django_extensions
Далее стандартно добавляю django_extensions к списку установленных приложений:
INSTALLED_APPS += ('django_extensions',)
Все! Приложение можно использовать с данными Вашего проекта.
Все возможности его я описать не в состоянии, тема данного поста команда graph_models.
Собственно это дополнительная команда для manage.py, т.е. ее нужно запускать в командной строке как syncdb или runserver
Из всех возможностей синтаксиса данной команды я вынес для себя следующие варианты использования:
1. Вывод диаграммы всех установленных приложений:
$ python manage.py graph_models -o models_diagramm.png
Ключ -o означает в какой файл выводить.
2. То же самое, но с группировкой по приложениям - таблицы будут не перемешаны как попало, а сгруппированы по принадлежности к приложениям красивой рамочкой.
$ python manage.py graph_models -g -o models_diagramm.png
3. Когда проекты достаточно большие вывод всех моделей понимания не вносит, поэтому есть возможность заказать себе на вывод только те приложения которые интересуют в данный момент:
$ python manage.py graph_models -g -o models_diagramm.png polls
В конец команды можно дописывать через пробел имена именно тех приложений, которые интересуют.
Если не использовать ключ -o будет генерироваться .dot файл, что с ним делать потом я не разобрался :) Было бы интересно найти никсовую программу которая бы позволяла вносить дополнительные комментарии, двигать блоки так как удобно, кастомизировать цвета вывода...
P.S. Примеры вывода смотреть на официальной странице.
