【问题标题】:How to display items on html table from django model base on its category如何根据类别在 django 模型的 html 表上显示项目
【发布时间】:2022-11-17 00:54:06
【问题描述】:

我在 Stock 模型中有项目,每个项目都有它所属的类别。我希望它遍历 Stock 模型,找到不同的类别,显示与该类别相关的项目,并将类别名称显示为表中相关项目上方的标题。

模型.py


class Stock(models.Model):
    user = models.ForeignKey(User, on_delete = models.SET_NULL, null = True)
    part_No = models.CharField(max_length=100, null=True)
    item_name = models.CharField(max_length=100, null=True)
    category = models.CharField(max_length=100, null=True)
    unit = models.CharField(max_length=50, null=True)
    balance_bd = models.IntegerField(default='0', null = True)
    received = models.IntegerField(default='0', null = True)
    issued = models.IntegerField(default='0', null=True)
    unit_price = models.DecimalField(max_digits=20,  decimal_places=2, null=True)
    obsolete = models.BooleanField(default=False, null=True)

视图.py

def stock(request):
    stocks = Stock.objects.all()
    context = {
        'stocks':stocks,
    }
    return render(request, 'base/stock.html', context)

模板


 <!-- DATA TABLE-->
        <div class="table-responsive m-b-40">
            <table class="table table-borderless table-data3">
                <thead>
                    <tr class="bg-primary">
                        <th>NO</th>
                        <th>PART NO</th>
                        <th>DESCRIPTION</th>
                        <th>CATEGORY</th>
                        <th>UNIT</th>
                        <th>BALANCE B/D</th>
                        <th>RECEIVED</th>
                        <th>TOTAL BAL</th>
                        <th>ISSUED</th>
                        <th>TALLY CARD BAL</th>
                        <th>UNIT PRICE</th>
                        <th>TOTAL PRICE</th>
                        <th>ACTION</th>
                    </tr>
                </thead>
                <tbody>
                    
                    {% for stock in stocks %}        
                    {% if stock.obsolete %}
                    
                    <tr>                        
                        <td>{{forloop.counter}}</td>
                        <td class="text-success"><i>{{stock.part_No}}</i></td>
                        <td class="text-success"><i>{{stock.item_name}}(obsolete)</i></td>
                        <td class="text-success"><i>{{stock.category}}</i></td>
                        <td class="text-success"><i>{{stock.unit}}</i></td>
                        <td class="text-success"><i>{{stock.balance_bd}}</i></td>
                        <td class="text-success"><i>{{stock.received}}</i></td>
                        <td class="text-success"><i>{{stock.total_bal}}</i></td>
                        <td class="text-success"><i>{{stock.issued}}</i></td>
                        <td class="text-success"><i>{{stock.tally_card_bal}}</i></td>
                        <td class="text-success"><i>{{stock.unit_price}}</i></td>
                        <td class="text-success"><i>&#162;{{stock.total_price}}</i></td>
                       
                        <td>
                            <div class="table-data-feature">
                                
                               <a href="{% url 'update-item' stock.id %}"> <button class="item" data-toggle="tooltip" data-placement="top" title="Update">
                                    <i class="zmdi zmdi-edit"></i>
                                </button></a>
                                <button class="item" data-toggle="tooltip" data-placement="top" title="Delete">
                                    <i class="zmdi zmdi-delete"></i>
                                </button>
                                
                            </div>
                        </td>
                    </tr>
    
                    {% else %}
                    <tr>
                        <td>{{forloop.counter}}</td>
                        <td>{{stock.part_No}}</td>
                        <td>{{stock.item_name}}</td>
                        <td>{{stock.category}}</td>
                        <td>{{stock.unit}}</td>
                        <td>{{stock.balance_bd}}</td>
                        <td>{{stock.received}}</td>
                        <td>{{stock.total_bal}}</td>
                        <td>{{stock.issued}}</td>
                        <td>{{stock.tally_card_bal}}</td>
                        <td>&#162;{{stock.unit_price}}</td>
                        <td>&#162;{{stock.total_price}}</td>
                        <td>
                            <div class="table-data-feature">
                                
                                <a href="{% url 'update-item' stock.id %}">  <button class="item" data-toggle="tooltip" data-placement="top" title="update">
                                    <i class="zmdi zmdi-edit"></i>
                                </button></a>
                                <button class="item" data-toggle="tooltip" data-placement="top" title="Delete">
                                    <i class="zmdi zmdi-delete"></i>
                                </button>
                                
                            </div>
                        </td>
                    </tr>
                    
                    {% endif %}

                {% empty %}
                <p>No item in stock</p>
                    {% endfor %}

                    <tr>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td colspan="8" style="font-weight: bold;">TOTAL PRICE</td>
                        <td class="text-success" style="font-weight: bold;">&#162;{{sumTotalPrice}}</td>
                        <td></td>
                    </tr>
                </tbody>
            </table>
        </div> 
        <!-- END DATA TABLE-->

这些是我到目前为止的结果 my stock table

我希望它看起来像这样image

【问题讨论】:

    标签: django django-models django-views django-templates


    【解决方案1】:

    Django 提供了 regoup 模板标签,你可以从 Django 官方文档中轻松理解

    链接是here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-03
      • 2022-09-27
      • 1970-01-01
      • 1970-01-01
      • 2015-04-23
      • 2017-02-11
      相关资源
      最近更新 更多