django - html || за выпуск l oop - PullRequest
1 голос
/ 09 января 2020

Я хочу отобразить все элементы из списка 'sum_list' в таблице html. но один элемент отображается в таблице. я знаю, что я должен использовать для l oop в html, чтобы отобразить все элементы, и я пытался, но не смог сделать это. я работаю с django и ниже мой код views.py, в котором определен sum_list.

    detail = Sale_detail()
    sum_list= []
    x = datetime.datetime.now()
    month = x.strftime("%B")
    path = r'\\10.9.32.2\adm\Ash\FY 2019-20\Sale detail sheet\SALE DETAIL SHEET JANUARY 2020.xlsx'
    customers1 = [20,31,28,27,17,46,13,15,14,37,100125,100051,100062,100087,100072,100071,100070,100057,100056,100066,100068,100086,100091,100103,100126,100131,100145,100150,100152,100140,100165,100180]
    customers2 = [ 'Asian Cements','Asian Fine', 'UTCL Roorkee', 'UTCL Bagheri','UTCL Panipat','UTCL Sikandrabad','Ambuja Nalagargh','Ambuja Ropar','Ambuja Roorkee','Ambuja Dadri','ACC LTD','Fateh','Everest','Hemkund Sahib','Rakesh kumar','Amritsaria','Jai Shiv shankar','Ramjee','Paras','Manju','Sachin','R.S.Green','BTS','S.A.Bricks','Royal','M.M. Concrete','Fairmont','Aniket','A One','ONS','NTC','Guru Teg Bhadar']
    customers2_length = range(0,len(customers2))
    today = date.today()
    d1 = today.strftime("%d-%m-%Y")
    tarik = d1   
    df = pd.read_excel(open(path,"rb"),sheet_name= month.upper(), index_col=None, header=  None)
    for (i,j) in zip(customers1, customers2_length):
        ab = df[df[2] == i]
        a= (ab[ab[6]== tarik][8]).sum()
        b = round(a,2)
        i = customers2[j]
        if b != 0:
            sum_list.append([i, str(b)])
    # print(sum_list)

    for i,j in sum_list:
        detail.customer = i
        detail.qty = j
    return render(request,'index.html', {'x': detail})

и эта моя html часть для отображения элемента в форме таблицы

<table class="table table-striped">
    <thead>
      <tr>
        <th scope="col">#</th>
        <th scope="col">Customer</th>
        <th scope="col">Quantity (MT)</th>

      </tr>
    </thead>
    <tbody>
        <tr>


        <th scope="row">1</th>
        <td>{{x.customer}}</td>
        <td>{{x.qty}}</td>

    </tr>
    </tbody>
  </table>

, пожалуйста, помогите мне решить эту проблему, чтобы просмотреть все элементы из списка в таблице.

1 Ответ

0 голосов
/ 09 января 2020

Материал с подробностями в views.py не нужен. Вместо этого создайте свой список с помощью

sum_list.append( (i, str(b)) )

и выполните рендеринг {'sum_list': sum_list}, а затем в своем шаблоне внутри тела таблицы:

 {% for x, y in sum_list %}
     <tr>
        <td>{{ x }}</td>
        <td>{{ y }}</td>
    </tr>
{% endfor %}
...