def METHOD_NAME(model, date_field):
    queryset = model.objects.filter(
        **{date_field + '__gte': start_of_last_month}
    )
    # Make a single, huge query to the database
    data_dump = list(queryset.values_list('pk', date_field))
    # Sort by date
    data_dump = sorted(data_dump, key=lambda x: x[1])
    year_month_counts = defaultdict(lambda: defaultdict(lambda: 0))
    last_pks = defaultdict(lambda: defaultdict(lambda: 0))
    for pk, date in data_dump:
        year_month_counts[date.year][date.month] += 1
        last_pks[date.year][date.month] = pk
    results = []
    cumulative = 0
    for year in sorted(year_month_counts.keys()):
        for month in sorted(year_month_counts[year].keys()):
            cumulative += year_month_counts[year][month]
            results.append((
                year, month, year_month_counts[year][month],
                cumulative, last_pks[year][month]
            ))
    return results