Python 如何获取查询集的每日总计

Python 如何获取查询集的每日总计,python,django,Python,Django,这里是新的Python/Django程序员。我一直在玩d3.js,在创建多系列折线图时遇到了一些问题。我已经缩小了问题的范围,我认为这是因为我发送给d3的数据每天有多个值 如果您选择回答,我的问题是:如何计算每种交易类型(贷记或借记)每天的总额? Models.py class Transaction(models.Model): class Transaction(models.Model): user = models.ForeignKey(Users, null=True)

这里是新的Python/Django程序员。我一直在玩d3.js,在创建多系列折线图时遇到了一些问题。我已经缩小了问题的范围,我认为这是因为我发送给d3的数据每天有多个值

如果您选择回答,我的问题是:如何计算每种交易类型(贷记或借记)每天的总额?

Models.py

class Transaction(models.Model):
    class Transaction(models.Model):
    user = models.ForeignKey(Users, null=True)
    date = models.DateField(null=True, blank=True)
    description = models.TextField(max_length=75, null=True, blank=True)
    original_description = models.TextField(max_length=75, null=True, blank=True)
    amount = models.DecimalField(max_digits=12, decimal_places=2, null=True, blank=True)
    transaction_type = models.TextField(max_length=75, null=True, blank=True)
    category = models.TextField(max_length=75, null=True, blank=True)
    account = models.ForeignKey(Account, null=True)
    account_name = models.TextField(max_length=75, null=True, blank=True)
dashboard.py

import homepage.models as hmod

@view_function
def process_request(request):
    params = {}

    if request.user.is_authenticated():
        user_session = request.user
        userid = user_session.id
    else:
        return HttpResponseRedirect('/homepage/login/')

    trans = hmod.Transaction.objects.all().filter(user_id=userid).values_list('date', 'transaction_type', 'amount', 'category', 'account_name').order_by('date')

    x = 0
    y = 0

    for tran in trans:
        if tran[1] == "credit":
            x += 1
        else:
            y += 1
    print(x)
    print(y)

    trans_json = json.dumps(list(trans), cls=DjangoJSONEncoder)

    params['trans_json'] = trans_json

    return templater.render_to_response(request, 'dashboard.html', params)
*x和y只是用来计算每种类型的事务总数,而我却在努力计算

html/脚本--只是一个摘录。如果有帮助的话,我可以把整个剧本都包括进去

//bring json data from dashboard.py
var data = ${trans_json}
...
// Group by transaction_type
    var credit = data.filter(function(d) {
      return d[1] == "credit";;
    });

    var debit = data.filter(function(d) {
      return d[1] == "debit";
    });
 ....
    svg.selectAll('.line')
      .data([debit, credit])
      .enter()
        .append('path')
          .attr('class', 'line')
          .style('stroke', function(d) {
            return colors(Math.random() * 50);
          })
          .attr('clip-path', 'url(#clip)')
          .attr('d', function(d) {
            return line(d);
          })
在我当前的设置中,数据以d=“2014-09-12,借方,-9.85,快餐,支票…”的格式作为所有交易的一个长块返回(按“借方”或“贷方”分组) 但是,当我返回行(d)时,我得到了丑陋的错误d=“MNaN,160.57666664cnan,160.576616666664,NaN…”

我在过去创建了一个折线图,但是我当时使用的数据每天只有一个条目。这就是为什么我认为我的错误可能是用户每天有多个事务,这使得绘制一条线很困难

我愿意接受你们所有人能提供的任何帮助。如果你们能帮我获得查询集的每日总数并将其传递给脚本,太棒了。或者如果有更好的方法来实现我的愿望,我很乐意放弃,从另一个角度开始

谢谢

注意如果有小的语法错误(即${trans_json}),这可能是因为我在称为django-Mako plus的排序堆栈中也使用了Mako
尽管如此,我也可能会有真正的语法错误。^^我尝试标记django mako plus,但它似乎还不是一个标记。

我不是django人,但如果您只想按日期计数,那么您的查询应该类似于:
hmod.Transaction.objects.all().filter(user\u id=userid.values('date')。注释(count=count('amount')).order_by('date')
谢谢。你知道一种方法来获得每天发生的贷记和借记交易的总额吗?嗯,你能在其中再加一个值吗?
hmod.Transaction.objects.all().filter(user_id=userid)。值('Transaction_type')。值('date')。注释(c‌​ount=Count('amount'))。order_by('date')
。我又不是django用户,所以我只是在猜测:)听起来你在寻找Python解决方案,所以我删除了D3标记。如果不正确,请随意添加它并澄清问题。