私は自分自身を少しの予算のアプリケーションを構築しています。Django - テンプレートからマネージャに変数を渡す
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 %}
このモデルとともに
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)
:私はこのマネージャを使用しています
しかし、マネージャには私のURLにある日付文字列が必要です。
url(r'^budgets/(?P<slug>[^/]+)/$', views.BudgetView.as_view(), name="budgets"),
私は、この単一の目的のために多くのコードで私の見解を過負荷に私を伴わないこれを達成するための方法を探しています。今、私がやっているすべてはこれです:それは正しい合計を届けることができるように
def budget_accounts(self):
return Account.objects.filter(income=False, fixed_value=None)
私は、バックマネージャにこのURL文字列を取得する方法が必要です!
私はあなたが言っていることを見ています。私は間違いなくビューにデータを取得することができます..私の問題は、ビュー機能は、クエリセットをフェッチしていることです。私はテンプレート内のクエリーセットを繰り返しています。 –
私はビューでこれをすべて処理する必要があると思うが、このロジックをすべてビューから取り除くのは、最初はすべてをマネージャーに移した理由だった! –
私はURLを追加しました –