2
1

More than 3 years have passed since last update.

Djangoでモデル関係図を自動生成

Posted at

概要

Django extensionsのgraph_modelsを使用し、モデルの関係図を自動生成する方法の自分用まとめ。
envではなく、dockerコンテナ内で実行する手順になっています。

準備

インストールなど

必要なパッケージをインストールする。

pip install pygraphviz
pip install pydotplus
pip install django-extensions

windows環境でpygraphvizをインストールしようとするとVCビルドツールをインストールしたりする必要があるので注意。

また、dockerコンテナで行う場合、次の作業も必要でした。
graphvizをインストール。

apt-get install -y graphviz

日本語で出力したい場合、日本語フォントのインストール。ttcファイルはwindowsなどから適当に用意。
Dockerfileに記載してしまうのが楽です。

$ cp meiryob.ttc /usr/share/fonts
$ fc-cache -fv

その他

あらかじめモデル自体やフィールドにverbose-nameを付けているとモデル図でもその名前を使用することができます。

コマンド

python3 manage.py graph_models -g -o <出力名>.png --verbose-names --disable-abstract-fields <app名>

私の環境ではjpgは出力できませんでしたが本当はできるらしい?
また、--verbose-namesはverbose-nameを使用するオプション、--disable-abstract-fieldsは継承元のフィールドを含めないようにするオプションです。他にも不要なモデルを除外する--exclude-modelsなど多くのオプションがあります。

参考

Django で Models.py の ER図をPDF化

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1