我需要用chartjs创建一个图表,在折线图中显示当前年份的月份计数。数据应该从名为“invoice”的模型中检索,字段名称为“Invoice_date”。
备注: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")
请有人帮我弄清楚。
1条答案
按热度按时间du7egjpx1#
尝试
然后,在循环数据时,执行
datum['month_wise_count']
,或在模板{{ datum.month_wise_count }}
中执行。请注意,实际上不应使用
.filter(invoice_date__year=2022)
。请用表示当前年份的变量替换2022。UPDATE:我用来测试查询集的示例模型。
测试
这将生成以下结果:
道歉:我犯了一个错误,把
.order_by
放在.values
之前,它应该在queryset的末尾,现在是正确的。