Djangoでツリー構造を作る時に便利なdjango-mpttのreadme.rstの和訳です。
django-mpttは便利なのですが、日本語の資料が少なそうなので和訳しました。
なお、日本語として読みやすくするために、言い回しや文のつなぎの変更や省略を行っています。気になる方は原文を確認してください。
原文はこちら。
他のドキュメントもそのうち和訳するかもしれません。
django-mptt
djangoモデルに修正された先行順走査(MPTT)を実装し、モデルインスタンスのツリーとして動作するユーティリティです。
プロジェクトホーム: http://github.com/django-mptt/django-mptt/
ドキュメント: http://django-mptt.github.io/django-mptt/
ディスカッショングループ: http://groups.google.com/group/django-mptt-dev
修正された先行順走査(MPTT)とは何か?
MPTTとは、階層的なデータをデータベースに保存する手法です。 検索処理を効率化することを目的としています。
効率化のトレードオフとして、要素の追加や移動がより複雑になっており、ツリー構造を保つには追加の作業が必要です。
MPTTについて、どう動作するか詳細を理解できるいくつかの記事を示しておきます。
SQLの中のツリー (Trees in SQL)
データベースに階層構造のデータを保存する (Storing Hierarchical Data in a Database)
MySQLの中の階層的なデータを管理する(Managing Hierarchical Data in MySQL)
django-mpttとは何か?
django-mpttは、簡単にMPTTをあなたのdjangoモデルで使えるようにする、再利用可能なdjangoアプリケーションです。 データベースのテーブルをツリー構造として管理し、モデルインスタンスのツリーを操作するツールを提供します。
必要要件
Python 2.6以上 (実験的なサポート:python 3.2以上)
Django 1.4.2以上
特徴
- モデルの簡単な登録 - ツリー構造に必要なフィールドを自動的に追加します。
- モデルインスタンスを作成・削除したり、親を変更したりすると、自動的にツリー構造を更新します。
- あなたが選択した単一(もしくは複数)のフィールドで、ツリーの各レベルを自動的に整列させます
- 登録されたモデルに対して、次のような新しいモデルメソッドを追加します。
- 木の中の位置を変更
- 祖先、兄弟、子の検索
- 子孫の数を数える
- その他の木に関する操作
- 登録されたモデルに対して TreeManagerが追加され、以下のメソッドを提供します。
- 木周辺、もしくは別の木へのノードの移動
- 木のどこかへノードを挿入
- 木のMPTTフィールドの再生成(djangoの外側でアップデートを行った際に利用)
- ツリーモデル用のFormフィールド
- ツリーモデル用のユーティリティ機能
- ツリーを描画するためのテンプレートタグとフィルター
0 件のコメント:
コメントを投稿