如何在不覆盖以前的数据的情况下,暂时将所选数据从一个 table 保存到另一个?

How can I temporarily save selected data from one table to another without overwriting the previous data?

我有一个 html table,我需要将一行数据从这个 table 传输或复制到我调用的具有相同结构的另一个 table我的数据库中的购物车。为此,我希望当我单击给定行的按钮 (+) 时,将相应的数据添加到购物车 table。

这是我的模板

 <form type="post" action="" style="margin: 0" >
        <label for="code" class="nav-link">Référence </label>
        <div class="col-sm-9">
            <input  id="productCode" type="text" name="productCode"  placeholder="Entez le code du produit ..." onkeyup="myFunction()">
        </div>  
    </form>

    <table class="table table-bordered" id="productsTable" width="400">
        <thead>
            <tr>
                <th>ID</th>
                <th width="10%">Code</th>
                <!-- <th width="16%">Catégorie</th> -->
                <th width="50%">Libéllé</th>
                <!-- <th width="12%">Marque</th> -->
                <th  width="11%">Date entrée </th>
                <th width="11%">Qté initiale </th>
                <!-- <th width="12%">Quantity </th> -->
                <!-- <th width="12%">Qtité finale </th> -->
                <th>PU</th>
                <!-- <th>Statut</th> -->
                <th style="align-self: center;">Actions</th>
            </tr>
        </thead>
        <tbody>
        {% if products|length < 1 %}
            <tr>
            <td colspan="20" class="text-center">Aucune donnée trouvée, veuillez ajouter quelques données!</td>
            </tr>
        {% else %}
            {% for product in products %}
                <tr>
                    <td>{{ forloop.counter }}</td>
                    <td>{{ product.code }}</td>
                    <!-- <td>{{ product.category }}</td> -->
                    <td>{{ product.name }}</td>
                    <!-- <td>{{ product.brand }}</td> -->
                    <td>{{ product.date_entry }}</td>
                    <td>{{ product.quantity_entry }}</td>
                    <!-- <td>{{ product.quantity }}</td> -->
                    <!-- <td>{{ product.final_stock }}</td> -->
                    <td>{{ product.unit_price }}</td>
                    <!-- <td>{{ product.status }}</td> -->
                    <!-- <td><label {% if product.status == '1' %}class="badge badge-success" {% else %} class="badge badge-danger" {% endif %}>{{ product.get_status_display }}</label></td> -->
                    <td>
                        <!-- <button class="btn btn-danger" id="btn-delete" data-url="#" data-toggle="modal"
                                    data-target="#removeCategoryModal"></button> -->
                            <!-- <span class="glyphicon glyphicon-trash"> --><a href="#"><i class="fa fa-trash" style="color:red"></i></a>
                            <!-- Supprimer -->

                        <!-- <button class="btn btn-info show-form-delete" id="btn-update" data-url="#" data-taraget="#btn-update" data-toggle="modal"></button> -->
                           <!--  <span class="glyphicon glyphicon-pencil"></span> --><a href="#"><i class="fa fa-pencil"></i></a>
                            <!-- Editer -->
                        <a href="#"><i class="fa fa-plus-square"></i></a>

                    </td>
                </tr>
            {% endfor %}
        {% endif %}
        </tbody>
    </table>

    <script type="text/javascript">
        function myFunction() {
                var input, filter, table, tr, td, i, txtValue;
                input = document.getElementById("productCode");
                filter = input.value.toUpperCase();
                table = document.getElementById("productsTable");
                tr = table.getElementsByTagName("tr");
                for (i = 0; i < tr.length; i++) {
                    td = tr[i].getElementsByTagName("td")[1];
                    if (td) {
                        txtValue = td.textContent || td.innerText;
                        if (txtValue.toUpperCase().indexOf(filter) > -1) {
                            tr[i].style.display = "";
                        } else {
                            tr[i].style.display = "none";
                        }
                    }       
                }
            }
    </script>

这是显示产品列表的视图

def products_list(request):
    products_lists = Product.objects.all()
    print(products_lists)
    html = render_to_string('modules/tables_products.html', {"products": products_lists})
    return JsonResponse({"message": "Ok", "html": html})

请注意,我有一个产品模型,其内容在上面的 table 中,还有一个购物车模型,它将临时从 table 中选择的每一行中获取数据。

请协助我转移意见。

对于 e-commerce/cart 上下文,我建议使用 sessions 来构建购物车。 github 上有一个项目示例可以做到这一点。看看cart-code

如果你想了解更多关于django session的知识django-sessions