Djangoアプリケーションでは、ユーザーセッションにアクセスしてからflat=True
でusers_idsを取得できます。例えば。私はやっている:Djangoクエリーセットから重複しない値を除外する
Session.objects.filter(last_activity_gte=time_window).values_list('user_id',flat=True)
しかし、結果は重複して、None
値によって汚染されています。同じクエリを実行して、[なし]または重複を除外するにはどうすればよいですか?
time_window = timezone.now() - timedelta(minutes=5)
user_ids = Session.objects.filter(last_activity_gte=time_window).values_list('user_id',flat=True)
user_ids = [id for id in user_ids if id is not None]
user_ids = set(user_ids)
しかし速いだろうDBを照会しながら、私は直接それを達成していることができれば、私は疑問に思う:これを行うには
一つの方法です。パフォーマンスが重要です。
誰もが興味を持っていた場合、私はORMはisnull
で空のユーザーフィールド、フィルタを除外するには
私にとってはうまくいくはずです。私はpostgresqlを使用しています。 –
Btw、 'values_list'と' distinct'をこのように一緒に使うのはいいですか? –
はい、可能です。 – C14L