簡體   English   中英

如何將字典中帶注釋的月份 int 更改為月份名稱?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM