я должен фильтровать QuerySet динамического значения (которое не может быть None): могу я просто написать:Django: filtering queryset by 'field__isnull = True' или 'field = None'?
filtered_queryset = queryset.filter(field=value)
или мне проверить None:
if value is None:
filtered_queryset = queryset.filter(field__isnull=True)
else:
filtered_queryset = queryset.filter(field=value)
делает поведение зависит от конкретной СУБД?
+1 Я не знал, что он обрабатывал« Нет », что очень полезно знать. – Ngenator
Я использую Django 1.7, и оба случая генерируют тот же запрос: В [19]: str (User.objects.filter (username__isnull = True) .query) == str (User.objects.filter (имя пользователя = нет)) .query) Out [19]: True Итак, я полагаю, вы можете использовать любой из них. – Akhorus