Отправка html данных строки таблицы из нескольких строк одновременно в django модель - PullRequest
0 голосов
/ 26 января 2020

У меня есть таблица, которая создается после того, как пользователь выбрал количество элементов в списке. Если пользователь доволен выбранными элементами, он может отправить элементы в бэкэнд, где мне нужно сохранить элементы в модели.

Я использую javascript для отображения выбранных элементов в новой таблице. (Код ниже) Данные с карты, где ключи - это PK, а значения - это объекты с описанием и ценовыми данными.

  function logMapElements(value, key, map) {
    var newRow = document.createElement("tr");
    var itemPK = document.createElement("td");
    itemPK.setAttribute('class', 'id');
    itemPK.textContent = key
    newRow.appendChild(itemPK);
    var itemDescription = document.createElement("td",);
    itemDescription.textContent = value.item
    newRow.appendChild(itemDescription);
    var itemPrice = document.createElement("td");
    itemPrice.textContent = value.price
    newRow.appendChild(itemPrice);
    selectedItemsTableBody.appendChild(newRow);

  }
});

Таблица HTML;

        <div class="table-responsive">
          <table class="table table-borderless" id="selected_items_table">
            <thead>
              <tr>
                <th>Description</th>
                <th>Price</th>
                <th>Remove</th>
              </tr>
            </thead>
            <form action="" method="POST"> {% csrf_token %}
            <tbody id="selectedItemsTable">
              <!-- THE SELECTED ITEMS ARE RENDERED HERE -->
            </tbody>
            </form>
          </table>
        </div>

Моя Django Модель

class Selected(models.Model):
    foreignKey = models.CharField(max_length=5)
    description = models.CharField(max_length=20)
    price = models.DecimalField(max_digits=5, decimal_places=2)

Я не совсем точно знаю, как записать представление для сохранения данных из строк в модель. Или, если я должен написать это в моих моделях, чтобы мои модели были полными. Можно ли даже сохранить данные из нескольких строк в таблице с помощью одной кнопки отправки?

Некоторые примеры данных

pk. Описание . Цена

12. Пицца 13,50

13. Вода . 3.00

У кого-нибудь есть идеи? Заранее спасибо

1 Ответ

0 голосов
/ 26 января 2020

Django уже имеет функции для управления несколькими элементами на одной странице (но несколькими формами) и отображает их в виде таблицы. Функция, которую вы ищете, называется formsets , поэтому, если вы решите ее использовать, ее будет очень легко включить в ваш текущий проект и отказаться от рендеринга на стороне клиента.

Если бы вы продолжить рендеринг на стороне клиента, а затем я бы сгенерировал набор форм на клиенте и повторно использовал остальные механизмы набора форм на сервере.

...