【问题标题】:django - html || for loop issuedjango - html || for循环问题
【发布时间】:2020-01-09 14:08:36
【问题描述】:

我想在 html 表中显示列表“sum_list”中的所有项目。但是一项会显示在表格中。我知道我必须在 html 中使用 for 循环来显示所有项目,我尝试过但没有这样做。我正在使用 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>

请帮我解决这个问题,以查看表中列表中的所有项目。

【问题讨论】:

  • 您在context 中发送一个Sale_detail 对象。这是你想要的行为吗?

标签: html django for-loop html-table


【解决方案1】:

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 %}

【讨论】:

  • 这个完美无瑕。谢谢您的帮助。我想知道的另一件事是如何在创建新条目时自动刷新表格。目前我必须刷新页面以考虑新条目。
  • 哼!添加条目时刷新页面是另一个问题。我无法回答这个问题,对不起!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多