आप यहां एक सबक्वायरी के साथ काम कर सकते हैं, लेकिन मुझे लगता है कि यह प्रदर्शन के मामले में ज्यादा मायने नहीं रखेगा:
from django.db.models import Exists, OuterRef, Q
UserNames.objects.filter(
Exists(UserNames.objects.filter(
~Q(user_id=OuterRef('user_id')),
first_name=OuterRef('first_name')
))
)
या django-3.0 से पहले :
from django.db.models import Exists, OuterRef, Q
UserNames.objects.annotate(
has_other=Exists(UserNames.objects.filter(
~Q(user_id=OuterRef('user_id')),
first_name=OuterRef('first_name')
))
).filter(has_other=True)
इस प्रकार हम UserNames
. बनाए रखते हैं ऑब्जेक्ट जिनके लिए एक UserNames
मौजूद है एक ही first_name
. के साथ ऑब्जेक्ट , और एक भिन्न user_id
. के साथ ।