在 Django 模板中访问临时模型数据?

Accessing temporary model data in a django template?

我有以下视图代码,它向多对多关系中包含的 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 %}

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

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

将相册查询集保存为视图中的变量,迭代它并像您正在做的那样注释对象,然后将此变量传递给上下文。

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