【问题标题】:Accessing temporary model data in a django template?访问 django 模板中的临时模型数据?
【发布时间】:2015-03-17 23:47:44
【问题描述】:

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

我需要能够通过以下方式访问模板中的增值税率和总成本:

{% for album in cart.albums.all %}
    {{ album.vat_rate }}
    {{ album.total_cost }}
{% endfor %}

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-23
      • 2013-03-16
      • 2011-03-13
      • 1970-01-01
      • 2016-04-18
      • 2022-01-15
      • 1970-01-01
      • 2010-12-25
      相关资源
      最近更新 更多