Запрос
Balance.objects.filter(~Q(fax_date=F('paused_date')))
возвращает пустые qs, даже если у меня есть объекты, которые соответствуют условию "поле даты факса не равно дате паузы".Можно ли использовать ~ Q и F вместе, как это?
выполнил такой тест:
deals = Deal.objects.all()
balance_pre = Balance.objects.filter(~Q(fax_date=F('paused_date')), fax_date__isnull=False, reserved=False)
agr_nums = list(deals.filter(agr_name__isnull=False).values_list('agr_name', flat=True).distinct())
agrs_with_fax = 0
for agr_num in agr_nums:
try:
balance_agr = Balance.objects.get(number__icontains=agr_num)
if balance_agr.fax_date is not None and balance_agr.fax_date != balance_agr.paused_date and not balance_agr.reserved:
agrs_with_fax += 1
except Balance.DoesNotExist:
pass
agrs_with_fax2 = 0
for agr_num in agr_nums:
try:
balance_pre.get(number__icontains=agr_num)
agrs_with_fax2 += 1
except Balance.DoesNotExist:
pass
r = [agrs_with_fax, agrs_with_fax2, balance_agr.fax_date, balance_agr.paused_date, balance_agr.reserved]
r вернул
[55, 0, datetime.date(2018, 7, 11), None, False]
Я невидите мою ошибку, оба цикла должны возвращать один и тот же результат.