Django-将变量从模板传递给管理器

Django-将变量从模板传递给管理器,django,Django,我正在为自己构建一个小小的预算应用程序。我正在使用此管理器: class AccountMonthlyManager(MonthlyCalculationManager): def transactions(self, date_str): date = get_this_month_and_year(date_str) entries = self.related_set().filter(date__month=date[0], date__year

我正在为自己构建一个小小的预算应用程序。我正在使用此管理器:

class AccountMonthlyManager(MonthlyCalculationManager):

    def transactions(self, date_str):
        date = get_this_month_and_year(date_str)
        entries = self.related_set().filter(date__month=date[0], date__year=date[1]).aggregate(total=Sum('amount'))
        return entries.get('amount', 0)
与此模型一起:

class Account(models.Model):
    begin = models.FloatField()
    weekly_change = models.FloatField()
    fixed_value = models.FloatField(null=True)
    income = models.BooleanField(default=False)
    monthly = AccountMonthlyManager()
    objects = models.Manager()
我想在模板中显示每个帐户的所有交易的总额,有点像这样:

{% for account in view.budget_accounts %}
<tr class="dataLine budget" data-id="{{ account.id }}">
    <td>{{ account.label }}</td>
    <td>{{ account.monthly.transactions }}</td>
</tr>
{% endfor %}

我需要一种方法将此url字符串返回给经理,以便它能够提供正确的总数

你的URL.py是什么?您应该能够在URL中添加一个参数,以便将
/budgets/2017-12/
转换为类似
查看预算(monthyear)
。根据来自的样本,您应该能够执行以下操作:

url(r'^budget/([0-9]{4})-([0-9]{2})/$', views.budget),
并将budget()函数更改为:

def budget(request, year, month):

或类似的。不确定您是如何将模板放入预算账户的,因此我不确定这是否真的是您的显示视图功能。但是urls.py是关键,它非常强大——如果你使用它,那么你可以拥有一个在GET上从来没有任何传统参数的大型网站——仅用于安全目的(也许是为了防止URL变得太长)和POST。

我明白你的意思。我完全可以把数据放到视图中。。我的问题是view函数只获取一个queryset。我正在迭代模板中的查询集。我想我应该在视图中处理所有这些,但是从视图中获取所有这些逻辑是我首先将所有内容移动到管理器中的原因!我已经添加了urlSo,如果我将queryset本身移动到管理器中,我想这会成功的!谢谢你的帮助!
url(r'^budget/([0-9]{4})-([0-9]{2})/$', views.budget),
def budget(request, year, month):