[英]How to change annotated month int in a dictionary into a month name?
我是 Django 框架的新手,我使用注釋來總結一年中特定月份支付的所有金額。 這工作正常,但問題是我無法將月份 int 轉換為模板中的月份名稱
視圖.py
def income_report(request):
context = {}
if grab_data_passed == 'monthly':
daily_data=Income.objects.values('date__year', 'date__month')\
.annotate(amount=Sum('amount'))
context['daily_data']=daily_data
return render(request, 'reports/incomes_report_details.html', context)
模板
{% for fo in daily_data %}
<tr>
<td>{{ fo.month }}</td>
<td>{{ fo.amount }}</td>
</tr>
{% endfor %}
如何在模板中將此帶注釋的月份更改為月份名稱。 我知道我必須先將 date__month 轉換回視圖中的月份名稱,然后才能將其傳遞給模板,但是如何?
您可以在您的情況下創建自己的模板過濾器:
來自 Django 官方文檔:
https://docs.djangoproject.com/en/3.0/howto/custom-template-tags/
polls/
__init__.py
models.py
templatetags/
__init__.py
extra_filters.py
views.py
extra_filters.py :
from django import template
import calendar
register = template.Library()
...
@register.filter
def month_to_string(month):
return calendar.month_name[month]
然后在您的模板中,首先導入 extra_filters.py :
{% load extra_filters %}
...
...
{{ fo.month|month_to_string }}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.