我有一个模特"药物"有子外键"会计分录"包含数量。每种药物有多个会计分录,我将子药数量的总和汇总为药物数量。
我现在遇到的问题是,当我渲染模板时,我会看到以下内容:
手头数量
{'数量_sum':11}
{'数量_sum':99}
{'数量_sum':222}
我试图让数量_sum':11显示为基本值(11),但似乎无法让它正常运行
非常感谢您的帮助
models.py
class Drug(models.Model):
Facility = models.ForeignKey(Facility, on_delete=models.CASCADE)
Name = models.TextField(max_length=120,default='default')
def _get_sum_quantity(self):
return self.quantities.aggregate(Sum('Quantity'))
sumQuantity = property(_get_sum_quantity)
def __str__(self):
drug_name = self.Name
return drug_name
class Meta:
verbose_name_plural = 'Drugs'
class AccountingEntry(models.Model):
Drug = models.ForeignKey(Drug, on_delete=models.CASCADE, related_name='quantities')
Quantity = models.IntegerField(default='0')
views.py
def update(request):
context = locals()
template = 'update.html'
return render(request, 'update.html', {'drug_list': Drug.objects.all()})
HTML代码段
{% for drug in drug_list %}
<td>{{ drug.Name }}</td>
<td>{{ drug.sumQuantity }}</td>
{% if not forloop.last %}
</tr>
<tr>
{% endif %}
{% endfor %}
答案 0 :(得分:0)
我认为这些行
{'Quantity__sum': 11}
{'Quantity__sum': 99}
{'Quantity__sum': 222}
来自drug.sumQuantity
(位于HTML代码段内。所以,如果你想获得Quantity__sum的值,你可以在SumQuantity属性上做一个点符号。所以,你可能有类似的东西
{% for drug in drug_list %}
<td>{{ drug.Name }}</td>
<td>{{ drug.sumQuantity.Quantity__sum }}</td>
{% if not forloop.last %}
</tr>
<tr>
{% endif %}
{% endfor %}