我有以下视图代码,它将一些临时数据添加到ManyToMany关系中包含的Django模型实例中。我希望能够在模板中访问该数据,但我不确定如何。
@login_required()
def shopping_cart(request):
try:
cart = ShoppingCart.objects.get(user__exact=request.user)
except ShoppingCart.DoesNotExist:
cart = ShoppingCart(user=request.user)
cart.save()
for album in cart.albums.all():
album.vat_rate = request.session['vat_rate']
album.total_cost = (((album.price / 100) * album.vat_rate) + album.price)
return render_to_response('sym_money/shopping_cart.html',
{'shopping_cart': cart},
context_instance=RequestContext(request))
我需要通过执行以下操作来访问模板中的vat_rate和total_cost:
{% for album in cart.albums.all %}
{{ album.vat_rate }}
{{ album.total_cost }}
{% endfor %}
没有任何临时数据在模型中有任何字段,我也不想将其保存到数据库中,我只是希望能够从模板中访问模型中的临时数据。
答案 0 :(得分:3)
在模板中,当您执行{% for album in cart.albums.all %}
时,您将创建一个全新的查询集,以便您之前注释的对象全部被丢弃。
将相册查询集保存为视图中的变量,对其进行迭代并按照您正在进行的方式分配对象,然后将此变量传递给上下文。
提示:render_to_response
是oldskool - 只需使用render
。