Django: как редактировать 4 записи одновременно в табличном представлении? - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть новый Django проект с заданными c ограничениями для отображения данных, подлежащих редактированию?

До сих пор у меня было редактирование и обновление форм, которые «работают» для указанной c записи .

У меня есть индекс. html форма, отображающая данные моей модели. Записи группируются по четырем записям.

Ожидается следующее:

  1. для отображения той же таблицы в форме редактирования / обновления, но с полями, которые можно изменить
  2. имеет четыре записи для редактирования
  3. , предварительно заполненные данными четырех последних строк таблицы Бюстгальтеры (на основе даты)
  4. Когда я действую модификацию, сохраняются 4 новые записи

Я действительно не знаю, как это сделать ...

models.py

class Bras(SafeDeleteModel):
    """ A class to create a country site instance. """

    _safedelete_policy = SOFT_DELETE_CASCADE
    bra_ide = models.AutoField(primary_key = True)
    pay_ide = models.ForeignKey(Pays, on_delete = models.CASCADE) # related country
    ran_st1 = models.IntegerField("Stratification variable 1", blank=True)
    ran_st2 = models.IntegerField("Stratification variable 2", blank=True)
    bra_00A_act = models.IntegerField("Arm A activated", default=0, null=True, blank=True)
    bra_00A_lib = models.CharField("Arm A label", max_length=50, null=True, blank=True)
    bra_00B_act = models.IntegerField("Arm B activated", default=0, null=True, blank=True)
    bra_00B_lib = models.CharField("Arm B label", max_length=50, null=True, blank=True)
    ...
    bra_log = models.CharField("User login", max_length = 50)
    bra_dat = models.DateTimeField("Date of settings")
    log = HistoricalRecords()

index. html

{% extends 'layouts/base.html' %}
{% load static %}
{% load crispy_forms_tags %}

{% block extrahead %}{% endblock %}
{% block title %}Randomization Settings | Coverage{% endblock %}
{% block content %}

<div class='container'>
    <br>        
    <br>
    <h1>Randomization Settings - Country: France</h1>
    <br>
    <br>

    <br>
    <table id="table_id" class="table  table-stripped table-hover" style="width:100%">

        <thead>
            <tr>
                <th>Date</th>
                <th>Strate 1</th>
                <th>Strate 2</th>
                <th>Arm A</th>
                <th>Arm B</th>
                <th>Arm C</th>
                <th>Arm D</th>
                <th>Arm E</th>
                <th>Arm F</th>
                <th>Arm G</th>
                <th>Arm H</th>
                <th>Arm I</th>
                <th>Arm J</th>
                <!-- <th>Actions</th> -->
            </tr>
        </thead>
        <tbody>
        {% for arm in arms %}
            <tr>
                <td>{{ arm.bra_dat|date:"M d, Y" }}</td>
                <td>
                    {% if arm.ran_st1 == 1 %}
                        Yes
                    {% else %}
                        No
                    {% endif %}
                </td>
                <td>                    
                    {% if arm.ran_st2 == 1 %}
                        Yes
                    {% else %}
                        No
                    {% endif %}
                </td>

                <td>
                    {% if arm.bra_00A_act == 1 %}
                        &#x2705
                    {% else %}
                        -
                    {% endif %}

                    {% if arm.bra_00A_lib == None %}
                        -
                    {% else %}
                        {{ arm.bra_00A_lib|truncatechars:5 }}
                    {% endif %}
                </td>
                <td>
                    {% if arm.bra_00B_act == 1 %}
                        &#x2705
                    {% else %}
                        -
                    {% endif %}

                    {% if arm.bra_00B_lib == None %}
                        -
                    {% else %}
                        {{ arm.bra_00B_lib|truncatechars:5 }}
                    {% endif %}
                </td>
                <td>
                    {% if arm.bra_00C_act == 1 %}
                        &#x2705
                    {% else %}
                        -
                    {% endif %}

                    {% if arm.bra_00C_lib == None %}
                        -
                    {% else %}
                        {{ arm.bra_00C_lib|truncatechars:5 }}
                    {% endif %}
                </td>
                <td>
                    {% if arm.bra_00D_act == 1 %}
                        &#x2705
                    {% else %}
                        -
                    {% endif %}

                    {% if arm.bra_00D_lib == None %}
                        -
                    {% else %}
                        {{ arm.bra_00D_lib|truncatechars:5 }}
                    {% endif %}
                </td>
                <td>
                    {% if arm.bra_00E_act == 1 %}
                        &#x2705
                    {% else %}
                        -
                    {% endif %}

                    {% if arm.bra_00E_lib == None %}
                        -
                    {% else %}
                        {{ arm.bra_00E_lib|truncatechars:5 }}
                    {% endif %}
                </td>
                <td>
                    {% if arm.bra_00F_act == 1 %}
                        &#x2705
                    {% else %}
                        -
                    {% endif %}

                    {% if arm.bra_00F_lib == None %}
                        -
                    {% else %}
                        {{ arm.bra_00F_lib|truncatechars:5 }}
                    {% endif %}
                </td>
                <td>
                    {% if arm.bra_00G_act == 1 %}
                        &#x2705
                    {% else %}
                        -
                    {% endif %}

                    {% if arm.bra_00G_lib == None %}
                        -
                    {% else %}
                        {{ arm.bra_00G_lib|truncatechars:5 }}
                    {% endif %}
                </td>
                <td>
                    {% if arm.bra_00H_act == 1 %}
                        &#x2705
                    {% else %}
                        -
                    {% endif %}

                    {% if arm.bra_00H_lib == None %}
                        -
                    {% else %}
                        {{ arm.bra_00H_lib|truncatechars:5 }}
                    {% endif %}
                </td>
                <td>
                    {% if arm.bra_00I_act == 1 %}
                        &#x2705
                    {% else %}
                        -
                    {% endif %}

                    {% if arm.bra_00I_lib == None %}
                        -
                    {% else %}
                        {{ arm.bra_00I_lib|truncatechars:5 }}
                    {% endif %}
                </td>
                <td>
                    {% if arm.bra_00J_act == 1 %}
                        &#x2705
                    {% else %}
                        -
                    {% endif %}

                    {% if arm.bra_00J_lib == None %}
                        -
                    {% else %}
                        {{ arm.bra_00J_lib|truncatechars:5 }}
                    {% endif %}
                </td>

<!--                 <td>
                    <a style="margin-right: 40px" data-target="" class="randomization_settings" href="">Edit</a>
                    <a style="margin-right: 40px" data-target="" class="randomization_settings" href="{% url 'randomization_settings:update' arm.bra_ide %}">Update</a>                     
                </td> -->
            </tr>   
        {% endfor %}
        </tbody>

    </table>
    {% if liste_existe is not None and not liste_existe %}
        <p>No records found</p>
    {% endif %}
</div>

{% endblock %}
{% block extrabody %}
<!--DataTable-->
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.20/js/dataTables.bootstrap4.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.css">
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.20/css/dataTables.bootstrap4.min.css">
<!--DataTable-->

<!--Modal-->
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<!--Modal-->

<script>
    $(document).ready( function () {

        // http://live.datatables.net/ficemafo/1/edit
        $("#table_id").one("preInit.dt", function () {
                $("#table_id_filter label").append('<a data-target="" class="btn btn-primary" href="" style="width: 190px;margin-left:10px;">Modify settings</a>');

        });        

        if(window.navigator.language.slice(0, 2) == 'fr'){
            var table = $('#table_id').DataTable({
                lengthMenu: [5,10],
                "pageLength": 4,
                "bAutoWidth": false,
                "language": {
                "url": "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/French.json"
                },
            });
        } else {
            var table = $('#table_id').DataTable({
                lengthMenu: [5,10],
                "pageLength": 4,
                "bAutoWidth": false, 
            });

        }

    } );
</script>
{% endblock %}


enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...