私はモデルVisit
を持っています。これはForeignKeyがモデルStore
にあります。私はVisit
のフィルタリングされたクエリセットを持っています、そして、Visit
の指定されたクエリセットのの少なくとも2回、が少なくとも2回発生する回数を取得する必要があります。私はそうと、ループでこれを達成することができます知っている:関連するクエリセット内の外部キーの出現数をカウントする
store_at_least_twice = {}
for visit in visit_queryset:
# Set the value as False if this is the first time we've seen this store
# True if we've seen it already
store_at_least_twice[visit.store] = visit.store in store_at_least_twice.keys()
# Return count of True values
return sum(store_at_least_twice.values())
これは私が必要とする結果が得られますが、中にすべての項目を反復処理のオーバーヘッドなしにこれを行う方法があるべきように思えます潜在的に長いクエリーセットになる可能性があるもの。私はannotate
を使用するか、visit_queryset
に基づいてStore
クエリーセットを作成しましたが、まだループなしで動作するソリューションは見つかりませんでした。 visit_set__in=visits
によって
をカウントするあなたを持っていますhttps://docs.djangoproject.com/en/dev/topics/db/aggregation/をお読みください。 – lufte
うん、私はそこに少なくとも2回出現するものだけを得ることができる何かを見つけていない。それが私が始めたところです。 –