获取循环中的值的总和

时间:2015-05-06 13:40:46

标签: django django-templates django-views

我在模板中有一个循环:

{% for article in user.article_set.all %}
    {{ article.article_date }}
    {{ article.article_title }}
    {{ article.article_cost }}
{% endfor %}

如何显示该周期中所有{{ article.article_cost }}的总和(不计算)?或者我需要在我的观点中写点什么?

我试过了,但我不知道如何在我的模板中使用它,所以我不知道,这是否有效:

u = User.objects.get(username=username)
total_price = u.article_set.all().annotate(total=Sum('article_cost'))

完整视图:

def userprofile(request, username):
    u = User.objects.get(username=username)
    total_price = u.article_set.all().annotate(total=Sum('article_cost'))
    if request.POST:
        user_form = UserForm(request.POST, instance=request.user)
        user_profile = UserProfileForm(request.POST, request.FILES, instance=request.user.profile)
        if user_form.is_valid():
            user_form.save()
        if user_profile.is_valid():
            user_profile.save()
    else:
        user_form = UserForm(instance=request.user,
            initial={
                'first_name': request.user.first_name,
                'last_name': request.user.last_name,
                'email': request.user.email,
            })
        user = request.user
        profile = user.profile
        user_profile = UserProfileForm(instance=profile)

    return render_to_response('profile.html', {'user_form': user_form, 'user_profile': user_profile}, context_instance=RequestContext(request))

1 个答案:

答案 0 :(得分:2)

我肯定会建议您在视图中计算总​​和,然后将其作为上下文传递给模板。看一下this link,它会让您更好地理解模板和模板上下文。