Построение графика с помощью 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 на переменную, обозначающую текущий год.