問題タブ [django-treebeard]
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.
python - Djangoフォームでtreadbeardフィールドフォームを使用するDjango-Tteebeard
TreeBeardのビルトインフォームをdjangoフォーム(管理者ではない)で使用しようとしています。特に、Select ForeignKey フィールドのレンダリングを TreeBeard フォーム形式に置き換えたいと考えていました。ModelForm でフィールドを宣言することでこれを行うことができると思っていましたが、うまくいきませんでした。私はdjangoが初めてなので、理解が限られています。
これらは私のforms.pyの私の最初のクラスです
最初にカテゴリフィールドを宣言して実装しようとしましたが、これは明らかにそれを行う方法ではありません。宣言は HTML 形式のカテゴリ リストを返しますが、Post カテゴリ (ForeignKey) をそれで置き換えることはできません。
TreeBeard フォームを使用する理由は、カテゴリ階層に従ってフィールドをネストする方法のためです。
解決済み:これは、私が思っていたよりもはるかに簡単になりました。
django - テンプレートにdjango-treebeard MPをドロップダウンメニューとして表示するには?
treebeard docs apiの例に従って、get_annotated_list(parent=None, max_depth=None)
with parent=<my root node>を使用してツリーの annotated_list を作成しました。これをテンプレートに渡し、ドキュメントでAlexey Kinyovに帰属する例を使用して、次を使用してツリーを正常に表示できます
私が望むのは、これらのネストされたリストのドロップダウン機能を提供できるようにすることです。w3schools のこの標準的な例から借用して、annotated_list
テンプレート変数で動作するように変更したところ、次のようになりました。
私のコードはほとんど機能しますが、一番左のノードのノードの子が表示されないようで、その理由がわかりません。
注: CSS と JS は問題に含まれていませんが、ドロップダウン メニューを機能させるために必要でした (私はその w3schools の例で使用されているすぐに使える CSS/JS を使用しています)。
django - Wagtail: 子のフィールドでページ モデルをフィルター処理する
私は2つのモデルを持っていParentPage
ますChildPage
. ParentPage
フィールドis_completed
がTrue
にあるのセットを見つけたいですChildPage
。
通常、Djangoでは、次のようなことができます
ParentPage.objects.filter(child_page__is_completed=True)
ただし、鶺鴒/木のひげ階層の結合はここにはないと思います。
ChildPage
また、複数ParentPage
の s でsをフィルタリングできるかもしれないと思っていましChildPage.objects.children_of([parent_ids])
たが、それを行う方法もわかりません。
もっと簡単な方法はありますか?
python - 部下を再帰的に取得する方法は?
OrgUnit
会社、部門、チームなどの組織単位( )のDjangoモデルがあります。それはツリー構造です:
従業員は、1 つ以上の組織単位に接続できます。
..管理者は複数の組織単位を管理できます。
上のメソッドとして実装された、特定のマネージャーの部下であるすべての従業員OUManager
のクエリセットが必要ですが、現在の実装では、子組織ではなく、マネージャーが管理する OrgUnit に直接接続されている従業員のみが提供されます。
すなわち与えられた:
をお願いします。
emp1 と emp2 の両方を含むクエリセットを返します (上記の実装は emp2 のみを返します)。
1 つの db-hit だけで済むように部下を作成する方法はありますか?
これまでに思いついた最善の方法は、最初にすべてのパスを具体化する必要があります。
直接またはモデルを変更することによって、1 つの db-hit でこれを達成する直接的な方法はありますか?