Построение графика с помощью charjs в Django

Мне нужно создать диаграмму с помощью chartjs с отображением подсчета месяцев по текущему году в виде линейной диаграммы. Данные должны быть получены из модели с именем "invoice" и именем фейла "Invoice_date".

<
in views.py

def home(request):
    if request.user.is_authenticated:
        customers = User.objects.filter(groups__name='Customer').count()
        totalinvoice = invoice.objects.all().count()
        supplier = User.objects.filter(is_staff=True).count()

        # chart
        labels = ["Jan","Feb","Mar","Apr","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]
        data = [12,14,19,25,28,80,23,35,46,78,45,23] // This data's should be retrieved dynamically

        return render(request, 'home.html', {
            'totalinvoices':totalinvoice,
            'customers':customers,
            'supplier':supplier,
            "labels":json.dumps(labels),
            "data":json.dumps(data),
        })
    else:
        return redirect("login")

Пожалуйста, кто-нибудь помогите мне разобраться.

try

data = invoice.objects.filter(invoice_date__year=2022).order_by('invoice_date').values('invoice_date__month').annotate(month_wise_count=Count('id'))

Затем, во время циклического просмотра данных, сделайте datum['month_wise_count'], или в шаблоне {{ datum.month_wise_count }}.

Обратите внимание, что на практике вы НЕ должны использовать .filter(invoice_date__year=2022). Замените 2022 на переменную, обозначающую текущий год.

Вернуться на верх