1
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