gorynych0
Да японский бог, не надо никаких дополнительных таблиц, просто на основании имеющихся данных продаж дайте мне выборку по дням, когда продаж не было. Одна таблица. Один результат.
def no_sellings(request): sells = [] for sell in Selling.objects.all(): if (sell.selling_date.day, sell.selling_date.month, sell.selling_date.year) not in sells: sells.append((sell.selling_date.day, sell.selling_date.month, sell.selling_date.year)) return HttpResponse(str(sells)
Вывод: [(26, 12, 2017), (27, 12, 2017), (11, 10, 2017)])
gorynych0
Если серьёзно:
Я мог бы добавлять в 23:59 ежедневно, как день окончания дня ( для этого нужно создать отдельную таблицу days ), добавить логику в модель продажи, чтоб она изменяла значение there_is_selling в записи days, если продаж нету days в 23:59 записывалась как there_is_selling=False, если продажи были, то записывалась как there_is_selling=True, после, просто выводил бы записи с there_is_selling=False.
Только я не знаю как оптимизировать событие, что будет выполняться в 23:59, каждую минуту проверка на время? Мне кажется это глупо.
Итак, вот что я сумел написать для достижения нашей задачи:Очень, очень плохое решение. Ну представьте, у нас пять лет работы фирмы, в среднем сто продаж в день. Это примерно 200 000 записей. Когда вы делаете вот так
sells = [] .... for sell in Selling.objects.all(): ... if .... not in sells: