問題タブ [generic-relations]

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 投票する
2 に答える
764 参照

python - モデル クラス Django を別のモデルのインスタンスに関連付ける

@Todor のコメントに応じて大幅に編集。

[Django 1.7.6 と Python 3.4.1 を使用しています。]

—</p>

そのため、私の Django プロジェクトではItem、さまざまな特定のサブクラス化モデルを使用してモデルを定義しました。Categoryモデルも定義しました。私のモデルのおもちゃバージョンは次のようになります。

models.py

さて、????以上が私の質問です。各インスタンスに、サブクラスCategoryのリストを関連付けたいと思います。Item個々のItemインスタンスではなく、Item サブクラスです。

例: 特定のCategoryインスタンスを作成するとします<Category: terry>GilliamItemここで、とJonesItemサブクラスが "terry" に属していることを Django に伝えたいと思いますCategory

—</p>

これをどのように使用しますか?次のようにビューを書きたいと思います。

ビュー.py

Categoryつまり、私のビュー (1) はオブジェクトを取得します。(2)キーがそれに関連付けられたモデルの名前でCategoryあり、値がそれらのモデルのすべてのインスタンスを含むクエリセットである辞書を構築します。(3) その辞書をテンプレートに提供します。

例: 私は を訪れhttp://domain.com/category/terry/ます。Categoryビューはデータベースからオブジェクトを取得しname='terry'ます。c.item_types7 行目で が生成[GilliamItem, JonesItem]されるため、辞書は のようになり{ 'gilliam items': GilliamItem.objects.all(), 'jones items': JonesItem.objects.all() }ます。

—</p>

最後に、サイト管理者が管理サイトを通じてCategoryオブジェクトと型の間のマッピングを任意に再配置できるようにしたいと思います。(例: ある日、"Terry" を編集してから削除、場合によっては を追加することにするかもしれません。)ItemCategoryJonesItemitem_typesPratchettItem

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

django - 一般的なリレーションと Django でのオブジェクトの繰り返し

Post、Category、Flag という 3 つのモデルがあります。カテゴリでタグ付けされた各投稿にユーザーがフラグを立てられるようにします。ここで、特定のカテゴリの投稿に関連するすべてのフラグを一覧表示したいと考えています。ListViewジェネリックビューを使用してそれを行う2つの方法を見つけました:

最初のアプローチ:
Flag と Category の間の一般的な関係を定義して、次のようなものを呼び出せるようにします。Flag.objects.filter(object__categor=self.category)

2 番目のアプローチ:

私の質問は、どちらのアプローチがより効率的ですか? 私は一般的な関係に慣れていませんが、少し重いようです。一方、すべての Flag オブジェクトに対してクエリを実行し、それらを反復処理するのは、簡単なことではありません。

モデル.py

Text または Image インスタンスをそれぞれ保存したら、Post モデルを作成します。したがって、投稿にフラグを立てるか、テキストにフラグを立てて画像にフラグを立てることができます。

[また、一般的な関係を使用する必要がある場合に備えて、どのように一般的な関係を定義できるかについてのヒントもいただければ幸いです]

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

python - Django Rest Framework で GenericRelation を使用するにはどうすればよいですか?

GenericRelationDRF に backrefrence を持つモデルを含めたい

ドキュメントは、これが簡単であることを示しています(すぐ上:http://www.django-rest-framework.org/api-guide/relations/#manytomanyfields-with-a-through-model)-しかし、私は何かが欠けています!

GenericRelation フィールドを使用して表現されたリバース ジェネリック キーは、通常のリレーショナル フィールド タイプを使用してシリアル化できることに注意してください。これは、関係のターゲットのタイプが常に既知であるためです。

詳細については、ジェネリック リレーションに関する Django ドキュメントを参照してください。

私のモデル:

そして私のシリアライザー:

コメントアウトされた 2 つの行は、DRF にvoteable内部でシリアル化する方法を伝える私の試みQuestion
です。

'GenericRelatedObjectManager' object has no attribute 'pk'

そして2番目

<django.contrib.contenttypes.fields.create_generic_related_manager.<locals>.GenericRelatedObjectManager object at 0x7f7f3756cf60> is not JSON serializable

だから、明らかに私は何かを誤解しています。