0

私は在庫システムを構築しています.販売履歴をカテゴリ別に表示できるページがあり、販売されたすべてのアイテム、販売数量、在庫の合計数量、残りの数量、販売金額、利益などが表示されます....いつでもカテゴリー(文具など)で検索すると、下のように表示されます。

Item Name    stock qty    sold qty     total stock   total amount            profit
Books          990        45 75 60     1035 900 990   14567 15666 12666    1777 1555 17777
Sciences       825        45 75 60     1035 900 990    14567 15666 12666    1777 1555 17777
Comics         930        45 75 60     1035 900 990    14567 15666 12666    1777 1555 17777

しかし、私が実際に欲しいのは:

Item Name    stock qty    sold qty     total stock   total amount            profit
Books          990        45            1035          14567                  1777 
Sciences       825        75            1035          15666                  1555 
Comics         930        60            990           12666                  17777

データベースからアイテム名と在庫数が呼び出され、リストに追加されます。販売されたアイテムの数量については、データベースからそのようなアイテムのすべてのインスタンスを呼び出し、それらの合計を計算してリストに追加します。したがって、それぞれのアイテムに対してそれらをディスペイしたいと思います。同じことが金額とプロフィールにも当てはまります。私が欲しいのは、テンプレートを適切に表示するように操作する方法だけです。私のビューコードは以下のとおりです。

def search_category (request):
    collate=[]
    gains=[]
    amount=[]
    name=[]
    store=[]
    qty=[]
    if 'q' in request.GET and request.GET['q']:
        q = request.GET.get('q','')
        items = Item.objects.filter(category__name__exact=q)
        for item in items:
            collate.append(item.subcategory.subcategoryname)
            qty.append(int(item.quantity))
        len_collate=len(collate)
        count=0
        #for pick in collate:
        keep1=[]
        amt_save=[]
        gain_save=[]
        t=[]
        all_amt_save=[]
        #sum=0
        #t_amount=0
        #t_gain=0
        while count < len_collate:
            soldqty=[]

            #histories = RecordSales.objects.filter(ItemName__subcategoryname__exact=pick)#here

            histories = RecordSales.objects.filter(ItemName__subcategoryname__exact=collate[count])
            lenght=len(histories)
            for history in histories:


                soldqty.append(history.quantity)

                #keep1=[] #array to store sum
                len_qty=len(soldqty)
                #count=0
                #while count < lenght:
                sum=0
                sums=[]
                t_stock=[]
                #for num in soldqty:
                count_qty=0
                #for num in soldqty:
                while count_qty < len_qty:
                    sum=sum + soldqty[count_qty]
                    #t_stock=qty[count_qty] + sum
                    count_qty=count_qty + 1
                amount.append(history.total)
                t_amount=0

                amt_count=0
                while amt_count < len(amount):
                    t_amount=t_amount + amount[amt_count]
                    amt_count=amt_count + 1
                gains.append(history.profit)
                t_gain=0
                gain_count=0
                while gain_count < len(gains):
                    t_gain=t_gain + gains[gain_count]
                    gain_count=gain_count + 1
                name.append(history.ItemName)



            #keep1.append(sum)
            len_keep1=len(keep1)
            amt_save.append(t_amount)
            gain_save.append(t_gain)
            count=count + 1
            keep1.append(sum)
            all_amt_count=0
            all_amt_total=0
            while all_amt_count < len(amt_save):
                all_amt_total= all_amt_total + amt_save[all_amt_count]

                #all_amt_save.append(all_amt_total)
                all_amt_count=all_amt_count + 1
            all_g_count=0
            all_g_total=0
            while all_g_count < len(gain_save):
                all_g_total=all_g_total + gain_save[all_g_count]
                all_g_count=all_g_count + 1
            t_count=0
            while t_count < len(keep1):
                t_stock=keep1[t_count] + qty[t_count]

                t_count=t_count + 1
            store.append(t_stock)
            total_amount=0
            keep_total=[]
            for total in amount:
                total_amount=total_amount + total
                keep_total.append(total_amount)
                    #total_amount=0


        return render_to_response('sell_category.html',
        {'items':items,'query': q,'keep1':keep1,'name':name,'items':items,
        'keep_total':keep_total,'t':store,'amt_save':amt_save,'gain_save':gain_save,'all_amt':all_amt_total,'t_gain':all_g_total,'len':len_keep1,

        })
    else:
        return render_to_response('sell_category.html', {'error': True})

ありがとう。

4

1 に答える 1

1

すべてをリストに追加しているのでzip()、文字列の書式設定を使用して、目的の結果を得ることができます。

items=['Books','Sciences','Comics']
stock_qua=[990,825,930]
sold_qua=[45,75,60]
total_sto=[1035,1035,990]
total_amt=[14576,15666,12666]
profit=[1777,1555,1777]

print "{0:12s}{1:12s}{2:12s}{3:15s}{4:15s}{5:12s}".format("Item Name", "stock qty","sold qty","total stock","total amount","profit")

for item,stock,sold,tot_st,amt,pro in zip(items,stock_qua,sold_qua,total_sto,total_amt,profit):
    print "{0:12s}{1:^10d}{2:^10d}{3:^15d}{4:^15d}{5:^12d}".format(item,stock,sold,tot_st,amt,pro)

出力:

Item Name   stock qty   sold qty    total stock    total amount   profit      
Books          990        45         1035           14576         1777    
Sciences       825        75         1035           15666         1555    
Comics         930        60          990           12666         1777  
于 2012-08-28T22:47:12.117 に答える