Django 获取循环中的值之和
我在模板中有一个循环:Django 获取循环中的值之和,django,django-templates,django-views,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}}的总和(不计算)?或者我需要写一些我认为应该写的东西 我试过了,但我不知道如何在我的模板中使用它,所以我不知
{% 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))
我绝对建议您在视图中计算总和,然后将其作为上下文传递给模板。看一看,它将使您更好地理解模板和模板上下文。可能重复,但您能告诉我,我做错了什么吗?我想用
total\u price=User.objects.all().article\u set.all().annotate(total=sum('article\u cost'))提取article\u cost
和sum
但得到的“QuerySet”对象没有属性“article\u set”
。。。但是在模板user.article\u set.中,所有的都工作得很好…article\u set
是相关的管理器,因此它只能在模型实例上调用,在这种情况下是user
模型的实例User.objects.all()。