2017-06-27 5 views
0

私が達成したいのは、管理者に不明な量のクエリセットをマージすることです。ユーザーが見ることができる著者のリストがあり、ユーザーがリストにある著者に応じて、自分の記事だけを見ることができるはずです。私が持っていることは次のとおりです。djangoのクエリセットの未知の量をマージする

def get_queryset(self, request): 
    #getting all the lists and doing not important stuff 
    return (qs.filter(author__name = list(list_of_authors)[0]) | qs.filter(author__name = list(list_of_authors)[len(list_of_authors)-1])).distinct() 

ユーザーは、それが動作しない3のために、しかし、2人の著者からの記事を表示することができます場合、これは動作します。私は使用しようとしました:

for index in list_of_authors: 
    return qs.filter(author__name = list(list_of_authors)[index]) 

Authorクラスにはname = Charfield(max_length=50)があります。

悲しいことに、私は最後のクエリーセットしか持っていません。その量が不明なときにクエリーセットをマージすることも可能ですか?まともな量の検索の後、私は何も見つけ出さなかったからです。

+0

あなたは、関連するモデル、特に著者のフィールド定義を示してもらえますか? – Melvyn

+0

少しの間違いがあったので質問を編集しました。 – filtfilt

答えて

2

あなたが探しているのは__inlookupです。

名前フィールドはコンテナではなく、コンテナと比較しています。あなたが言うことができるように、ハードワークを行うのは簡単ではないので、Djangoはその検索であなたのためにそれを行いました。

ショートバージョン:qs.filter(author__name__in=list_of_authors)

+0

これは私がdjangoを愛する理由です。 – filtfilt

関連する問題