tôi phải lọc một queryset bởi một giá trị năng động (có thể None): Tôi có thể chỉ đơn giản viết:Django: lọc truy vấn bằng 'field__isnull = True' hoặc 'field = None'?
filtered_queryset = queryset.filter(field=value)
hoặc tôi sẽ kiểm tra None:
if value is None:
filtered_queryset = queryset.filter(field__isnull=True)
else:
filtered_queryset = queryset.filter(field=value)
Liệu hành vi phụ thuộc vào DBMS cụ thể?
+1 Tôi đã không biết nó xử lý' Không có' như thế, rất hữu ích để biết. – Ngenator
Tôi đang sử dụng Django 1.7 và cả hai trường hợp tạo cùng một truy vấn: Trong [19]: str (User.objects.filter (username__isnull = True) .query) == str (User.objects.filter (tên người dùng = Không có) .query) Out [19]: True Vì vậy, tôi cho rằng bạn cũng có thể sử dụng. – Akhorus