2017-08-31 23 views
0

モデルで行レベルの計算を実行し、その結果をテンプレートに表示します。データベースには、1日に各社の行があります。テンプレートへの出力計算

class MyModel(models.Model): 
    company = model.CharField(... 
    daily_target = model.PositiveSmallIntger(... 
    actual = model.PositiveSmallIntger(... 
    date = model.DateField(... 

テンプレートには、ログインした会社の100 * actual/daily_targetの結果を表示したいと考えています。私はPythonインタプリタでこれを行うのに問題はありませんが、ビュー&テンプレートでこれを行う方法について混乱しています。

答えて

1

あなたは、モデルにプロパティを追加することができます。

class MyModel(models.Model): 
    company = model.CharField(... 
    daily_target = model.PositiveSmallIntger(... 
    actual = model.PositiveSmallIntger(... 
    ... 

    @property 
    def pct_target(self): 
     return 100. * self.actual/self.daily_target 

次に、あなたのテンプレートで:

{% for item in queryset %} 
    {{ item.pct_target }} 
{% endfor %} 

これの欠点は、あなたがプロパティでクエリセットをフィルタリングしたり、注文することができないということです。もう1つのオプションは計算されたフィールドを持つクエリセットannotateです。

関連する問題