Получить различные данные из Django представлений в таблице - PullRequest
0 голосов
/ 14 февраля 2020

У меня CBV вот так:

class MyTableViews(TemplateView):
    template_name = "table.html"

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['tables'] = Table.objects.all()
        return context

И у меня есть такие таблицы:

<table id="t_add_row" class="table">
    <thead>
        <tr>
            <th>Header1</th>
            <th>Header2</th>
            <th>Header3</th>
            <th>Edit</th>
        </tr>
    </thead>
    <tbody>
        {% for item in tables %}
        <tr>
            <td>{{ item.id }}</td>
            <td>{{ item.name }}</td>
            <td>{{ item.address }}</td>
            <td>
                <button type="button" class="edit" data-target="#rowEditModal">x</button>
            </td>
        </tr>
        {% endfor %}
    </tbody>
</table>

Эта таблица выдает что-то вроде этого:

|Header1|  Header2  |    Header3    | Edit  |
|   1   |   Name1   |   Address1    |   x   |
|   2   |   Name2   |   Address2    |   x   |
|   3   |   Name3   |   Address3    |   x   |

И у меня есть модальная форма в тех же шаблонах, которая нацелена сверху таблицы для идентификатора = # rowEditModal:

<div class="modal-content" id="rowEditModal">

    {% for t in tables %}
    <div class="modal-body">
        <form>
            <div class="form-group">
                <label for="message-text" class="control-label">Header1:</label>
                <input type="text" class="form-control" id="header1" value="{{ t.id }}">
            </div>
            <div class="form-group">
                <label for="message-text" class="control-label">Header2:</label>
                <input type="text" class="form-control" id="header2" value="{{ t.name }}">
            </div>
            <div class="form-group">
                <label for="message-text" class="control-label">Header3:</label>
                <input type="text" class="form-control" id="header3" value="{{ t.address }}">
            </div>
        </form>
    </div>

    <div class="modal-footer">
        <button id="btn-updaterow" class="btn">Update</button>
    </div>
    {% endfor %}

</div>

Но когда я нажимаю кнопку Изменить (x) для каждой строки , тогда она отображается те же данные только из 1-й строки:

Header1:    1
Header2:    Name1
Header3:    Address1

Как получить разные данные для каждой строки?

...