問題タブ [generic-foreign-key]

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.

0 投票する
0 に答える
1293 参照

django - django で GenericForeignKey 関係のインライン管理フォームを表示する

私のモデル.py

プレースホルダーは、一般的な外部キー関係によって 4 つのクラスのいずれかを参照できます。page には、ページに多数の異なるモデルを含めることができることを示すために、プレースホルダーとの多対多の関係があります。

そして私のadmin.pyも同じです。

今私が欲しいのは、ページの管理ビューで、ページプレースホルダーの表示コンテンツ オブジェクトを編集するためのフォームを表示することです。そのインラインを取得しようとすると、オブジェクトがクラスではないというエラーが表示されます。admin.py を使用したこれに対する適切な解決策はありますか、またはこれらのモデル フォームを適切に表示するには、新しいフォームとビューを作成する必要がありますか?

0 投票する
1 に答える
396 参照

django - GenericForeignKey オブジェクトに対して Django テンプレート '_set.all' を使用することは可能ですか?

私はモデルAのオブジェクトをたくさん持っています(これは実際には重要ではありません..)、別のアプリにモデルBがあります。

モデル B は、他のオブジェクトを次のように参照します。

モデル A の型への参照を保持するオブジェクトにのみ関心があります。(どういうわけか) テンプレートの「後方」機能を使用してそれらを取得することは可能でしょうか?

私はもう試した:

しかし、「ジェネリック」では機能しないようです..?

0 投票する
3 に答える
7184 参照

python - Django:コンテンツタイプフレームワークを使用した一般的な関係の例?

contenttypes フレームワークに関する Django ドキュメントを何度か調べましたが、プロジェクトで一般的な関係を実装するのに十分なほどよく理解していません。この問題に関するオンラインの例やチュートリアルを探しましたが、1 つも見つかりません。私をばかだと呼んでください、しかし、私はこれについて助けが必要です(単にドキュメントにリンクすることで答えないでください). オンラインでのリソースの不足に基づいて、この質問に完全な例で答えると、あなたの答えは django の一般的な関係に関するこれまでのオンラインで最も役立つ例になると思います (おまけ!)。

だから、私の質問は: 誰かがモデルの簡単な例と、一般的なモデルのインスタンスと対話する方法を示す数行のコードを示すことができますか?


インスピレーションとして、これは非常に一般的な状況であると私が信じているものです。

サイトには、ほとんど同じように扱われるメディア アイテムがありますが、わずかに異なります。たとえば、画像と動画のアイテムがあり、ユーザーがアイテムに「いいね」したり、アイテムに「コメント」したりできるとします。いいねやコメントは、画像または動画アイテムに投稿されたかどうかに関係なく、同じように扱われるべきです。したがって、ユーザーのアルバム内の画像またはビデオを表示するための ItemView がある場合、次の種類の呼び出しが可能になります:mediaitem.comments.all()またはlen(mediaitem.likes.all())またはcomment.user_who_commented、それがどの種類のメディア アイテム (画像またはビデオ) であるかを知る必要はありません。

これには6 つのモデルが必要になると思います。

  • 抽象MediaItemクラス
  • 2 つの異なるタイプのメディア アイテム:ImageItemVideoItem
  • 抽象MediaItemActionsクラス
  • メディア アイテムに対して実行できる 2 種類のアクション:LikeおよびComment

この Django 機能の使用方法を知っている場合は、完全な例を示してください! 非常に強力なツールになると思いますので、自分のアプリケーションで使用したいと思っています。明確であればあるほど良い。

0 投票する
0 に答える
1008 参照

django - 別のアプリの GenericForeignKey の選択肢を制限する

再利用可能なカルーセル アプリを作成しています。メイン プロジェクトのモデルを参照する必要があるため、一般的な外部キーを使用しました。再利用可能なアプリには次のようなものがあります。

ここで、プロジェクトで content_type のタイプを制限できるようにしたいと考えています。上記のクラス宣言でこれを行っていた場合content_type、次のように行を書き換えることができます。

しかし、再利用可能なアプリはどのモデルで使用されるかわからないため、後でプロジェクトで選択肢を制限したいと考えています。

これはできますか?たとえば、この擬似コードのように:

実際、私の目的は、管理者が特定のモデルからのみ選択できるようにすることです。したがって、それを実装するソリューションはさらに優れています。

ありがとう!

0 投票する
1 に答える
907 参照

python - Django - GenericForeignKey の動的フォーム

ユーザーの content_type の選択に基づいて、動的にフォームを作成/処理するにはどうすればよいですか?

モデルが他のモデルへの汎用キーを保持するオブジェクトを追加するためのビュー/テンプレートを作成しています:

ユーザーに、タイトル、作成者などのフィールドを入力し、content_type (ドロップダウンリスト) を選択して、選択した content_type のフィールドに入力できる (オブジェクトを追加するための) 1 つのページをユーザーに提供したいと思います。選択されました。これは、選択された content_type と MainModels の適切なオブジェクトが作成される 1 つの「送信」ボタンでビューに送信する必要があります。いくつかの ajax/jquery を使用して、選択した content_type のフィールドで初期フォームを「拡張」することを考えていますが、それを正しく行う方法に関する他の提案を歓迎します。

0 投票する
2 に答える
3688 参照

python - sqlalchemy 汎用外部キー (django ORM と同様)

sqlalchemy には django の GenericForeignKey のようなものがありますか? そして、一般的な外部フィールドを使用するのは正しいですか。

私の問題は次のとおりです。いくつかのモデル (たとえば、ポスト、プロジェクト、欠員など、特別なものはありません) があり、それぞれにコメントを追加したいと考えています。そして、Comment モデルを 1 つだけ使用したいと考えています。する価値はありますか?または、PostComment、ProjectComment などを使用する必要がありますか? 両方の方法の長所/短所は?

ありがとう!

0 投票する
1 に答える
1292 参照

python - DjangoでジェネリックForeignKey参照でオブジェクトを参照する方法

ContentTypes と Generic を使用する 3 つのモデルを持つ Django アプリを使用して、Task モデルがDjango で動的外部キーを使用する方法を使用して、他の 2 つのモデルのいずれかへの ForeignKey を持つことを許可しますか? ガイドとして(ただし、このアプローチで何が起こっているのかまったくわからないことは認めます)。

通常、Task が Maintenance への通常の ForeignKey を持っている場合、Maintenance.task_set.all() を使用して特定の Maintenance に接続されたすべての Task を取得できますが、この動的外部キー システムではその機能は機能しません。この効果を達成するための代替関数呼び出しを知っている人はいますか?

0 投票する
1 に答える
645 参照

django - Django クエリから null の GenericForeignKey オブジェクトを除外する

ActivityLog次のフィールドを持つ汎用外部キーを定義する Django モデルがあります。

関連が削除されていない (None ではない)ActivityLogインスタンスをフィルタリングする必要があります。objectDjango は on delete カスケードを実行しないGenericForeignKeyため、この望ましくないレコードをルックアップから除外する必要があります。これを行うための簡単で標準的で効率的な方法はありますか?

素晴らしい世界では、次のようなものを使用します。

しかし、これはobjectデータベース フィールドではないため機能しません。

0 投票する
1 に答える
924 参照

python - Django GenericForeignKey: 2 つのモデルが同じ related_name を持つとアクセサーが衝突する

するとsyncdb、次のような多くのエラーが発生します。

私のモデルにはすでに関連する名前があります:

と をコメントアウトするTranscription2と問題がなくなるTranscription3ので、 related_names が衝突しているようです。それらを一意にする必要がありますか?もしそうなら、各子クラスに定型コードを書かなくてもこれを行う方法はありますか?