Удобный способ использования нескольких экземпляров одного и того же подкласса формы в шаблоне? - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь написать приложение, которое управляет задачами. Одно из моих требований - иметь возможность просматривать ежедневные задачи и перепланировать их, если пользователю потребуется выполнить это позже.

models.py:

class Task(models.Model):
    due_date = models.DateField()
    is_complete = models.BooleanField(default=False)
    description = models.CharField(max_length=100, blank=True)
    ## other fields

Эти задачи обрабатываются подклассом DayArchiveView, который использует date_field='due_date' и context_object_name='task_list'. Полученный шаблон отображает ежедневную задачу в виде строки в таблице. В этом интерфейсе я хотел бы предоставить способ изменить due_date. Поскольку он изменяет данные, <form> представляется наилучшим вариантом. Моя текущая версия использует нативный HTML, смешанный с шаблоном:

список задач. html

<table>
  <thead>
    <tr>
      <th>Due Date</th>
      <th>Description</th>
      <th>Complete?</th>
      <th>Change Due Date</th>
    </tr>
  </thead>
  <tbody>
    {% for task in task_list %}
      <tr>
        <td>{{ task.due_date }}</td>
        <td>{{ task.description }}</td>
        <td>{{ task.is_complete }}</td>
        <td> 
          <form method="post" action="{% url 'reschedule' %}">
            {% csrf_token %}

            <!--the following field is actually a more complicated dropdown using tempusdominus-bootstrap-4-->
            <input type="date" name="change_date"> 

            <input type='hidden' name='task_id' value='{{ task.id }}'>
            <button type="submit">Reschedule</button>
          </form>
        </td>
      </tr>
    {% endfor %}
  </tbody>
</table>

Вопрос, который я хотел бы задать Ответ на вопрос таков: есть ли хороший способ в представлении (CBV или FBV) передать несколько экземпляров одного класса Form внутри шаблона, каждый из которых имеет свое значение для своего скрытого поля.

Заранее спасибо!

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