2016-09-16 6 views
1

以下の例を使用して、クエリーセットを使用して/チェーンフィルターを追加しようとしています。私の理解には、最後にqueryset.count()は1つのインスタンスしか持たないはずですが、それには常にオリジナル10が含まれていました。最後queryset.count()Djangoでクエリーセットを正しく連結する方法

の予想される出力は、1:

# Set a default queryset. 
def get_queryset(self, *args, **kwargs): 
    queryset = super(UserMixin, self).get_queryset(*args, **kwargs) 
    queryset.count() # 10 instacnes 
    queryset.filter(id=1) 
    queryset.count() # 10 instacnes excpeted 1 

私はで私が思うに、この問題を解決することができます:

queryset = queryset.filter(id=1) 

これは正しい方法か、正しくIそれらをチェーンにそこの方法ですquerysetオブジェクトを追加できますか?

+1

'queryset.filter(id = 1).count()'を試してください –

答えて

3

それはあなたが新しいクエリを作成しているので、はい、これは正しい方法でそれ

queryset = queryset.filter(id=1) 

を更新しませんので、あなたはそれ以外の場合は、あなたがの終わりにカウント数を呼び出す必要があり、何にフィルタを割り当てることはありません前のフィルタコール

+1

ありがとうございました。自動割り当てされた関数がないことを確認したいと思います。センス。もう一度ありがとう。 – Prometheus

関連する問題