2016-10-20 22 views
0

ldapクエリの結果にページを分けて、ページごとにクエリごとに50人のユーザーを取得したいとします。ここに書かれているhttp://ldap3.readthedocs.io/searches.html?highlight=generatorは、ジェネレータを使うのがこれを行う最も簡単な方法だと示唆していますが、それを使ってページネーションを達成する方法についての詳細は提供していません。ジェネレータオブジェクトを反復処理すると、検索クエリに 'paged_size = 5'が指定されていても、すべてのユーザーエントリが出力されます。誰も私にここで起こっていることを説明することはできますか?ありがとう!!ページングのためにldap3 generatorを使用するには?

答えて

0

paged_criticalityパラメータをTrueに設定してみてください。サーバーがページングされた検索を実行できない可能性があります。その場合、paged_criticalityがTrueの場合、すべてのユーザーを返すのではなく、検索が失敗します。

0

これは私が使用した同様のシステムである:

# Set up your ldap connection 
conn = Connection(*args) 

# create a generator 
entry_generator = conn.extend.standard.paged_search(
     search_base=self.dc, search_filter=query[0], 
     search_scope=SUBTREE, attributes=self.user_attributes, 
     paged_size=1, generator=True) 

# Then get your results: 
results = [] 
for entry in entry_generator: 
    total_entries += 1 
    results.append(entry) 
    if total_entries % 50 == 0: 
     # do something with results 

それ以外の場合は50にPAGE_SIZEを設定してみてください、そのような結果を得ることができます。

関連する問題