Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Django的DetailView中获取特定类别的年-月成本摘要?_Python_Django - Fatal编程技术网

Python 如何在Django的DetailView中获取特定类别的年-月成本摘要?

Python 如何在Django的DetailView中获取特定类别的年-月成本摘要?,python,django,Python,Django,我有一个包含费用类别的表,当我单击某个类别时,它会将我重定向到这个DetailView页面。然后,我想显示所选类别的年-月成本汇总,以便与我已经得到的类似(每年-月汇总,但不适用于特定类别)。我怎样才能做到这一点 这就是我现在得到的并且被绊倒的东西: def category_summary(): summary_by_year_month = Expense.objects.annotate( month=TruncMonth('date')).values('date').a

我有一个包含费用类别的表,当我单击某个类别时,它会将我重定向到这个DetailView页面。然后,我想显示所选类别的年-月成本汇总,以便与我已经得到的类似(每年-月汇总,但不适用于特定类别)。我怎样才能做到这一点

这就是我现在得到的并且被绊倒的东西:

def category_summary():
    summary_by_year_month = Expense.objects.annotate(
    month=TruncMonth('date')).values('date').annotate(
    amount=Sum('amount')).order_by()

return summary_by_year_month
MODELS.PY

class Category(models.Model):
    name = models.CharField(max_length=50, unique=True)

    def __str__(self):
        return f'{self.name}'


class Expense(models.Model):
    class Meta:
         ordering = ('date', '-pk')

    category = models.ForeignKey(Category, null=True, blank=True, 
    on_delete=models.CASCADE)
    name = models.CharField(max_length=50)
    amount = models.DecimalField(max_digits=8, decimal_places=2)
    date = models.DateField(default=datetime.date.today, db_index=True)

    def __str__(self):
        return f'{self.date} {self.name} {self.amount}'

对于我来说,这个问题最令人困惑的部分是,我如何仅检索所选类别的信息,并在DetailView中向用户显示这些信息?提前感谢您的帮助。

为什么您不能在做批注之前按所选类别进行筛选呢?因为我不知道如何进行筛选。我尝试过过滤,做了很多事情,这就是我能做的。我是做Django的新手,从我开始学习它到现在才两周。另外,如果您更具体一些,请提供一些示例代码或其他内容,我将不胜感激。过滤器对于使用Django ORM非常关键:)我建议您阅读以下文档:。另请参阅关于这个问题的Django女孩教程:-整个教程都是推荐的。但是我能让它自动工作吗?我的意思是,当我点击表格中的“运动”类别时,我只会在DetailView中看到该类别的年-月成本,对吗?如果您将其放在视图的上下文中,然后在表单/模板中使用该数据,则是。根据你提出的问题,我强烈建议你通读整个Django女孩教程。。。我保证你会发现它非常有用!