2016-09-10 20 views
0

後のビューで動作します(タイトル、単価、および数量を持つラインアイテム)ジャンゴ:。合計額は、私は、複数のラインのモデルを持っているジャンゴで請求書のモデルを持っているだけでリフレッシュ

私は「addlineを持っています請求書に明細行を追加することができます。 このビューには、現在の請求書明細およびすべての明細の合計金額の計算済合計も表示されます。

新しい広告申込情報を送信すると、ビューは同じページに更新され、広告申込情報は正しく表示されますが、広告申込情報の合計(トータルサービスまたはトータルグッズ)は更新されません。 手動でページをリフレッシュするときや、別の行を追加するときに更新されます。

はここに私の関連ビュー事前に

def addline(request, id): 
    form = AddLineForm(request.POST or None) 

    invoice = get_object_or_404(Invoice, id = id) 
    linelist = Line.objects.filter(invoice = id).order_by('created_at') 
    servicelines = linelist.filter(line_type = "S") 
    goodslines = linelist.filter(line_type = "G") 
    totalservice = servicelines.aggregate(Sum('line_total'))['line_total__sum'] 
    print servicelines.aggregate(Sum('line_total')) 
    totalgoods = goodslines.aggregate(Sum('line_total'))['line_total__sum'] 



    if form.is_valid(): 
     instance = form.save(commit=False) #do schtuff with data 
     instance.invoice = invoice 
     instance.line_total = instance.unit_price *instance.qty 
     #print instance.line_total 
     if form.cleaned_data.get('overwrite'): 
      invoice.invoiced_service = totalservice or 0 #or zero to prevent fuss if list is empty 
      invoice.invoiced_goods = totalgoods or 0 
      invoice.save() 
     form.save() 
     form = AddLineForm() 

    context = {'inv': invoice, 'form': form, 'lines':linelist, 'goods': goodslines, 'services': servicelines ,'totalservice' : totalservice, 'totalgoods':totalgoods } 
    return render(request,'testpaper.html', context) 

おかげで、私は問題に何ができるかわかりません。多分、和は怠惰で評価されていないでしょうか? (form.saveで終わる「form.is_valid場合」ブロック)、さもなければ線は現在の前に計算され、行を算出するブロックの前にあることが必要:問題が検出された実際のビュー

+0

「invoice_detail」のビューは何ですか? – arcegk

+0

ああ、私はそれを試してトラブルシューティングをしましたが、その行は通常そこにはありません、それは直接行きます。 form.save() \t \t 'フォーム= AddLineForm() \t \tリターンリダイレクト( 'invoice_detail'、ID) \tコンテキスト= { 'INV':請求書、「 – lvergez

+0

form''はそう元のTE投稿することができますか? please – arcegk

答えて

0

を反映するように編集

*アイテムが保存されました。