через week()
то есть, если я выберу в фильтре даты: с 1 декабря по 15 декабря - выйдет 3 недели, так как 1 декабря попадает под неделю, начинающуюся 25 ноября. А мне нужны только полные недели, то есть недели, начинающиеся со 2 декабря и с 9ого
посчитайте для каждой недели максимальный и минимальный день недели через dateparse weekday. Если максимальный день =7 и минимальный = 1, значит неделя полноя. Аналогично для месяца.