[英]How to format the queryset in Django Template
我想從查詢集值中以表格或可讀形式顯示月份和總付款。
模型.py
class Payment(models.Model):
statementperiod = models.DateField(default = date.today())
paymentdate = models.DateField(default = date.today())
paymentamount = models.IntegerField()
paymentmethod = models.CharField(max_length=100 )
Status = models.CharField(max_length = 250, default = 'paid', choices = PAYMENT_CHOICES)
Paynote = models.CharField(max_length = 250, null = True, blank = True)
@classmethod
def totalpayment(cls):
total = Payment.objects.annotate(month=TruncMonth('paymentdate')).values('month').annotate(total_payment=Sum('paymentamount'))
return { total}
模板中的 QuerySet 值:
{<QuerySet [{'month': datetime.date(2019, 11, 1), 'total_payment': 315}, {'month': datetime.date(2019, 12, 1), 'total_payment': 8348}, {'month': datetime.date(2020, 1, 1), 'total_payment': 6292}]>}
如何格式化這些值?
您可以使用humanize django應用程序中的“intcomma”模板標簽來格式化total_payment: https ://docs.djangoproject.com/en/3.0/ref/contrib/humanize/
從文檔:
要激活這些過濾器,請將“django.contrib.humanize”添加到您的 INSTALLED_APPS 設置中。 完成后,在模板中使用 {% load humanize %},您將可以訪問以下過濾器。
模板示例:
{% load humanize %}
{{ total_payment|intcomma }}
而且,根據您想如何格式化月份,humanize 具有“naturalday”和“naturaltime”模板標簽。 但是,您也可以使用“日期”過濾器: https : //docs.djangoproject.com/en/3.0/ref/templates/builtins/#date
例子:
{{ month|date:"M" }}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.