В основном у меня есть три таблицы в моих моделях:
1) Делегаты - хранение всех делегатов
2) События - хранение всех событий
3) EventDelegate - отношение между делегатом и событием (для которого зарегистрирован делегат). какое событие)
Таблица делегатов отображается в шаблоне каждого события, которое также содержит событие, и я поставил флажок рядом с каждой строкой, чтобы сохранить проверенную строку и отправить идентификаторы всех проверенных строк в представление. функция, так что я могу вставить идентификаторы делегатов с l oop в таблицу EventDelegate вместе с тем же Eventid (он останется одинаковым для каждой строки, потому что я отправляю данные с каждой страницы события).
Итак, наконец, я должен быть в состоянии проверить делегатов из списка всех для каждой страницы события, и, нажав на кнопку отправить, добавит их идентификаторы вместе с идентификатором события в таблицу EventDelegate. Я что-то сделал, но не работаю так, как должен, разделяя мою работу до сих пор: -
models.py
...
class EventDelegate(models.Model):
event = models.ForeignKey(Event, on_delete=models.DO_NOTHING)
delegate = models.ForeignKey(Delegate, on_delete=models.DO_NOTHING)
шаблон. html
<form action="/register-delegates" method="POST">
{% csrf_token %}
<table id="myTable2" class="table table-striped table-bordered" style="width:100%">
<thead class="thead-light">
<tr>
<th scope="col"></th>
<th scope="col">#</th>
<th scope="col">Name</th>
<th scope="col">Email</th>
<th scope="col">Phone</th>
<th scope="col">Company</th>
<th scope="col">Designation</th>
<th></th>
</tr>
</thead>
<tbody>
{% for del in delegates %}
<tr>
//CHECKBOX TO SELECT MULTIPLE DELEGATES <td><input type="checkbox" name="regdelegate" value="{{ del.id }}"></td>
<td>{{ del.id }}</td>
<td>{{ del.first_name }} {{ del.last_name }}</td>
<td>{{ del.email }}</td>
<td>{{ del.phone }}</td>
<td>{{ del.company }}</td>
<td>{{ del.designation }}</td>
<td><a href="{% url 'delegate' dataset_id=del.dataset_id %}">View</a></td>
</tr>
{% endfor %}
//STORING THE EVENT ID HERE FOR POSTING <input type="hidden" name="eventid" value="{{ ev.id }}" />
<input type="submit" name="register" value="Register Selected Delegates" />
</tbody>
</table>
</form>
views.py
def register_delegates(request):
if request.method=='POST':
eventid = request.POST.get('eventid')
tosave = request.POST.getlist('regdelegate')
delid = Delegate.objects.get(id=tosave[0])
EventDelegate.objects.create(event_id=eventid,delegate_id=delid)
return HttpResponseRedirect('/view-events')
urls.py
...
path('register-delegates', views.register_delegates),