我正在使用PostgreSQL数据库的django api工作。该模型具有一个表示旅行时间(jalali格式)的日期字段和一个表示该旅行的乘客人数的整数字段。
我使用djjango_jalali来处理jalali日期查询。
from django_jalali.db import models as jmodels
class TravelReport( models.Model ):
travel_date = jmodels.jDateField(verbose_name="تاریخ سفر")
passengers = models.IntegerField()
我想计算一个jalali年中每个星期的乘客总数。这是我使用的查询:
queryset= TravelReport.objects.annotate(week=F("travel_date__week")).values("week").annotate(total_passengers=Sum("passengers"))
这是我的问题:Django查找__week返回格鲁吉亚周数,而不是贾拉利周数。例如,带有jdatetime的旅行日期的周数。日期(1390,5,12)应该是19,但我的查询返回31。
我有什么办法来解决这个问题?
好的。
- 重写查找方法以使用jalali日历格式。
- 将您的日期转换为格里历格式并存储在另一个字段中,并调用一个函数,该函数将jalali格式日期作为输入,并将往复的格里历格式日期发送到查找字段。
- 将一周的乘客数量存储在单独的字段中,键为jalali日历周名,值为该周的乘客数量。