2016-12-04 5 views
3

私はformsetの注文価格の合計したい。 int(food.price) * int(f.order_count)の合計額は ですか?Django:forループの合計値

def reservation_f(request, year, month, day): 
    # order_count = Food.objects.filter(serve_date__startswith = datetime.date(int(year), int(month), int(day))).count() 
    ReservationFormset = modelformset_factory(
     Reservation, 
     extra = 1, 
     fields = ('order_count', 'order_name', 'order_date'), 
     form = Reserve, 
     ) 
    if request.method == "POST": 
     formset = ReservationFormset(request.POST, queryset=Food.objects.none(), 
     form_kwargs={'month': month, 'year': year, 'day':day}) 
     if formset.is_valid(): 
      formset = formset.save(commit=False) 
      for f in formset: 
       food = Food.objects.get(
        serve_date__startswith = datetime.date(int(year), int(month), int(day)), 
        food_name=f.order_name) 
       print int(food.price) * int(f.order_count) 
      for f in formset: 
       f.user = request.user 
       f.save() 

     return HttpResponse("Add") 
    else: 
     formset = ReservationFormset(queryset=Food.objects.none(), 
     form_kwargs={'month': month, 'year': year, 'day':day}) 
     return render(request, 'form.html', {'formset':formset}) 

答えて

0

変数の意味と種類はあまり明確ではないので間違っている可能性があります。 しかし、あなたはそのようなことをすることができます:

for f in formset: 
    food = Food.objects.get(
     se_date__startswith = datetime.date(int(year), int(month), int(day)), 
     food_name=f.order_name) 
    print sum([int(item.price) * int(f.order_count) for item in food]) 
+0

私は今少し変更によって完全なビューを追加します – shahin