Django множественные модалы с формами не отображаются
У меня есть список терминалов, и для каждого терминала я хочу вывести форму обновления с помощью модала. Для этого я создаю список в представлении с формами и передаю список в контекст как terminal_update_forms
.
class TerminalManagementView(LoginRequiredMixin, TemplateView):
template_name = "app/terminal&location/terminal_management.html"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
terminal_update_forms = []
for terminal in terminals:
form = TbTerminalUpdateForm(
customer=self.request.user.customer, initial={'id': terminal.id})
terminal_update_forms.append(form)
context['tb_terminal_update_forms'] = terminal_update_forms
return context
class TbTerminalUpdateForm(forms.ModelForm):
class Meta:
model = TbTerminal
fields = ['terminal_name', 'terminal_desc',
'room', 'device_model']
Я создаю модальное окно для каждого терминала и кнопку обновления.
{% for terminal in terminals %}
{% if terminal.category %}
{% include 'app/terminal&location/modals/update_terminal_modal.html' with obj=terminal form=terminal_update_forms.forloop.counter %}
{{terminal_update_forms}}
<tr>
<td class="txt-oflo">{{ terminal.terminal_name }}</td>
<td class="txt-oflo">{{ terminal.terminal_id }}</td>
<td class="txt-oflo">{{ terminal.room.room_name }}</td>
<td class="txt-oflo">{{ terminal.create_time }}</td>
<td class="txt-oflo">{{ terminal.create_user }}</td>
<td>
<button class="btn btn-lg" data-toggle="modal" data-target="#{{ terminal.id }}">
<span> Remove </span> </button>
<button class="btn btn-lg ml-4" data-toggle="modal" data
target="#update_{{terminal.id}}"> <span> Update </span> </button>
</td>
</tr>
{% endif %}
{% endfor %}
Это модальный
<!-- Modal -->
<div class="modal fade" data-backdrop="static" data-keyboard="false" id="update_{{obj.id}}" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-sm" role="document">
<div class="modal-content">
<form enctype="multipart/form-data" action="{% url 'tb-terminal-update-form' %}" method="POST">
<div class="row d-flex justify-content-center">
<div class="col-10">
<fieldset class="form-group mt-2">
{% csrf_token %}
{{form|crispy}}
</fieldset>
<div class="form-group">
<button class="btn btn-lg" type="submit" >
<span>Save</span>
</button>
<button class="btn btn-lg" type="button" data-dismiss="modal">
<span>Close</span>
</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
Я хочу сделать формы обновления для каждого терминала, также мне нужно установить начальные значения для каждого. Могу ли я задать начальные значения, используя объект терминала?
Прямо сейчас модальное окно отображает пустое пространство.