フィルタの違いは何であり、あなたがして、検索するより多くの属性を追加することができたり、あなたを満たすオブジェクトのリストを取得することができ、「フィルタ」ではGET対ジャンゴクエリセットとフィルタ()()
>>> Question.objects.filter(id=1)
<QuerySet [<Question: What's new?>]>
>>> Question.objects.get(pk=1)
<Question: What's new?>
フィルタの違いは何であり、あなたがして、検索するより多くの属性を追加することができたり、あなたを満たすオブジェクトのリストを取得することができ、「フィルタ」ではGET対ジャンゴクエリセットとフィルタ()()
>>> Question.objects.filter(id=1)
<QuerySet [<Question: What's new?>]>
>>> Question.objects.get(pk=1)
<Question: What's new?>
を取得DBへの問い合わせ。
これは間違っています。フィルタを適用してgetを実行すると、同じキーワードを使用して結果を絞り込むことができます。フィルタistは0..nだけで、getはちょうど1つの結果です。 – sphere
違いは、filterはクエリーセットオブジェクトを返し、wheras getは必要なオブジェクトを返します。
filter()を使用する場合は、条件に一致するオブジェクトが2つ以上あると予想される場合は、通常、これを実行します。条件に一致する項目が見つからなかった場合、filter()はエラーをスローせずに空のクエリーセットを返します。
get()を使用する場合は、条件に一致する項目が1つ(唯一)必要です。アイテムが存在しない場合、または条件に一致するアイテムが複数存在する場合、Getはエラーをスローします。したがって、例外を適切に処理するには、try .. except ..ブロックまたはget_object_or_404などのショートカット関数を使用する必要があります。
ドキュメントで説明されているように、QuerySetはインスタンスの集合です。あなたを混乱させているのは何ですか? –