В models.py у меня есть модели Order and Item, Item, содержащие цену и вес:
class Item(models.Model):
name = models.CharField(u'Name', max_length=255)
article = models.CharField(u'Article', max_length=255)
price = models.PositiveIntegerField(u'Price')
weight = models.PositiveIntegerField(u'weight', blank=True, null=True, default=None)
class Order(models.Model):
item = models.ForeignKey(Item, verbose_name=u'Item')
count = models.PositiveIntegerField(u'Count')
user = models.ForeignKey(User, verbose_name=u'User')
def sum(self):
return self.count*self.item.price
def weight(self):
return self.count*self.item.weight
В views.py я выбираю свои заказы:
@render_to('app/purchase_view.html')
def purchase_view(request):
myorders = Order.objects.select_related().filter(user=request.user).all()
context.update({
'myorders':myorders,
})
И в шаблоне:
{% for myorder in myorders %}
<td>{{ myorder.item.article }}</td>
<td style="text-align:left;"><a href="#">{{ myorder.item.name }}</a></td>
<td>{{ myorder.item.price }}</td>
<td>{{ myorder.count }}</td>
<td>{{ myorder.sum }}</td>
<td>{{ myorder.weight }}</td>
</td>
</tr>
{% endfor %}
Итак, django генерирует для каждого параметра: myorder.sum, myorder.weight - похожие запросы. Есть ли что-то для кэша в сумме и весе модели заказа.