簡體   English   中英

我想按月分組怎么辦?在 Django 中

[英]I want to group by month how to do?in django

sumary = Profile.objects.values('user_report__created_date__month')

錯誤 無法將關鍵字“月”解析為字段。 不允許在“created_date”上加入。

    class Profile(models.Model):
        first_name = models.CharField(max_length=100, verbose_name=_('Имя'))
        last_name = models.CharField(max_length=100)



class Department(models.Model):
    number = models.IntegerField(default=0)
    name = models.CharField(max_length=150, default=None)

    def __unicode__(self):
        return self.name


class Report(models.Model):
    user = models.ForeignKey(Profile, related_name='user_report')
    department = models.ForeignKey(Department, related_name='report')
    created_date = models.DateTimeField()
    edited_by = models.ForeignKey(User)
    edited_at = models.DateTimeField(default=timezone.now())

    def __unicode__(self):
        return self.department.name

    class Meta:
        verbose_name = _('Отчет')
        verbose_name_plural = _('Отчеты')


class Statistic(models.Model):
    name = models.CharField(max_length=90)
    value = models.IntegerField()
    report = models.ForeignKey(Report, related_name='stat_report')

    def __unicode__(self):
        return self.name

你可能想要這樣的東西:

end_date = datetime.datetime.now() - datetime.timedelta(days=31)
start_date = datetime.datetime.now()
summary = Profile.objects.filter(user_report__range=(start_date, end_date))

這是為了獲取一個月的用戶報告。 那是對的嗎? 如果您想要更准確的答案,請添加更多代碼。

我做到了

 truncate_date = connection.ops.date_trunc_sql('month', 'created_date')
    qs = Profile.objects.extra({'date': truncate_date})
    report = qs.values('user_report__stat_report__name', 'date').filter(
        id=profiles_id).annotate(Sum('user_report__stat_report__value'))

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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