問題タブ [mptt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 多次元配列をModified Pre-order Traversal Treeに変換するPHP
Modified Pre-order Traversal Tree に変換したい多次元配列があります。
ネストされた配列をループするか、反復子を使用してみましたが、正しい境界を取得できませんでした。
ここで、左にバインドするために私が持っているもの、どうすれば右のものを取得できますか??
python - django-mptt は、ノードのサブセットからの祖先と子孫を持つ部分ツリーをレンダリングできますか?
django-mptt はノードのリストから部分ツリーを構築できますか?
この完全なツリーを考えると:
ノードのサブセットのみが与えられた場合、["Big-rig", "Car (automatic)"]
このツリーを効率的にレンダリングできるのは次のとおりです。
?
ノードを下って、その子を下に移動できることを知っています。しかし、この部分的なツリーを先祖と共にレンダリングすることはできますか?
django - django MPTT モデルと Fixture の適用
私はdjango MPTTモデルを使用しています。
MPTT モデルをサブクラス化しますが、JSON で提供された initial_data を使用してカスタム モデルにフィクスチャを追加しようとします。
親の TreeForeignKey はオプションです (空白 = True、null = True)。
initial_data から JSON フィクスチャを適用すると、フィールド「lft」、「rght」、「tree_id」、「level」を指定するよう求められます。
... python manage.py syncdb の実行時
これらは MPTT のフィールドです。
これを除外したり、フィクスチャ データから回避する方法はありますか?
ありがとう
python - Djangoクエリで結合条件を制御するには? または、django-mptt 祖先フィールドの値に基づいてクエリをフィルタリングする方法は?
私はdjango-mpptを使用して、プロジェクトモデルがアプリケーションで親プロジェクトを持つことを許可しています(そしてタスクはプロジェクトに属しています)。各プロジェクトにはステータスがあり、アクティブであり、祖先もすべてアクティブであるすべてのプロジェクトを照会しようとしています(最終的には、これらのプロジェクトに属するタスクを照会します)。
モデル
生の SQL
アクティブであり、その先祖もすべてアクティブであるすべてのプロジェクトを取得する生の SQL クエリを作成することができました。非アクティブな先祖に対して LEFT OUTER JOIN を構築し、結果が NULL であること、つまり非アクティブな先祖が存在しないことを確認することでこれを行っています (これが最善の方法かどうかはわかりません)。
ジャンゴクエリ?
これ (または機能的に同等のもの) を Django クエリとして記述することは可能ですか?
複雑なルックアップに Q オブジェクトを使用できることを知っており、 F() 式を見てきましたが、プロジェクトの祖先がプロジェクトの外部キーからアクセスできない限り、F() 式は役に立たないようです。 、しかし、MPTTを理解する限り、tree_id
、lft
およびフィールドに基づくフィルターを使用したJOINまたはサブクエリが必要です。rght
私はこの Django スニペットを思いつきました。オブジェクトとしてプロジェクト p が既にある場合、その特定のオブジェクトの非アクティブな先祖に対して Django クエリを作成できます。
しかし、そのような祖先を確認するために、プロジェクトをデータベースから取得する必要があります...
そのスニペットを結合またはサブクエリのフィルターの一部として使用して、上記の生の SQL のように、単一のクエリで関連するすべてのプロジェクト (つまり、アクティブで非アクティブな祖先を持たない) を取得するにはどうすればよいですか?
(では、非アクティブな祖先を持たないアクティブなプロジェクトに属するすべてのタスクを照会するにはどうすればよいでしょうか?)