উভয় বিকল্প ইতিমধ্যে বিদ্যমান উত্তরে উল্লেখ করা হয়েছে:
from django.db.models import Q
q1 = User.objects.filter(Q(income__gte=5000) | Q(income__isnull=True))
এবং
q2 = User.objects.filter(income__gte=5000) | User.objects.filter(income__isnull=True)
তবে কোনটি পছন্দ করা উচিত তা নিয়ে কিছুটা বিভ্রান্তি রয়েছে বলে মনে হয়।
মুল বক্তব্যটি হ'ল এসকিউএল স্তরে এগুলি অভিন্ন , তাই আপনি যা পছন্দ করুন তা নির্দ্বিধায় নিন!
জ্যাঙ্গো ORM Cookbook এই সম্পর্কে কিছু বিস্তারিতভাবে আলোচনা, এখানে প্রাসঙ্গিক অংশ:
queryset = User.objects.filter(
first_name__startswith='R'
) | User.objects.filter(
last_name__startswith='D'
)
দিকে
In [5]: str(queryset.query)
Out[5]: 'SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login",
"auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name",
"auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff",
"auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user"
WHERE ("auth_user"."first_name"::text LIKE R% OR "auth_user"."last_name"::text LIKE D%)'
এবং
qs = User.objects.filter(Q(first_name__startswith='R') | Q(last_name__startswith='D'))
দিকে
In [9]: str(qs.query)
Out[9]: 'SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login",
"auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name",
"auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff",
"auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user"
WHERE ("auth_user"."first_name"::text LIKE R% OR "auth_user"."last_name"::text LIKE D%)'
উত্স: django-orm- কুকবুক