访问django模板中的临时模型数据?

时间:2015-01-19 21:20:19

标签: python django python-3.x django-models django-templates

我有以下视图代码,它将一些临时数据添加到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 %}

没有任何临时数据在模型中有任何字段,我也不想将其保存到数据库中,我只是希望能够从模板中访问模型中的临时数据。

1 个答案:

答案 0 :(得分:3)

在模板中,当您执行{% for album in cart.albums.all %}时,您将创建一个全新的查询集,以便您之前注释的对象全部被丢弃。

将相册查询集保存为视图中的变量,对其进行迭代并按照您正在进行的方式分配对象,然后将此变量传递给上下文。

提示:render_to_response是oldskool - 只需使用render