В Django я смог создать добавить и удалить строки с помощью JS. Как добавить эти строки данных в Django DB. Сохраняет только последнюю запись строки. Вот следующий код:
VIEW:
def dynamicRow(request, *args, **kwargs):
form = Add_Form(request.POST or None)
template_name = 'addentry.html'
if request.method == 'POST':
if form.is_valid():
no_of_rows = int(request.POST.get('totalnum'))
print(no_of_rows)
list_of_rows = [Add_Form() for i in range(no_of_rows)]
args = {'forms': list_of_rows}
for i in args['forms']:
print(i) ## only prints last entry
i = Add_Form(request.POST)
task = i.save(commit=False)
task.save()
messages.success(request, 'Successfully stored data into database.')
else:
messages.error(request, form.errors)
else:
form = Add_Form()
return render(request, template_name, {'form': form })
HTML:
<form id="add_data" role=form method="POST" class="post-form" action="">{% csrf_token %}
<div class="container">
<table id="table" class=" table order-list">
<thead class="thead-light">
<tr>
<th scope="col">Device#</th>
<th scope="col">Name</th>
</tr>
</thead>
<tbody>
<tr>
<td class="col-sm-4">
<input type="mail" name="device" class="form-check"/>
</td>
<td class="col-sm-4">
<input type="mail" name="name" class="form-check"/>
</td>
<td class="col-sm-2"><a class="deleteRow"></a>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="5" style="text-align: left;">
<input type="button" class="btn btn-lg btn-block " id="addrow" value="Add Row" />
</td>
</tr>
</tfoot>
</table>
<div class="row">
<div align="center" class="col">
<h4>Number of Rows: </h4>
<input name="totalnum" id="totalnum" class="form-control" type="text" maxlength="2"></input>
</div></div>
</div> <!-- container -->
<br><br>
<div class="row "><div class="col">
<button type="submit" name="submit" class="btn">Submit</button><p><p>
</div></div>
</form>
<!-- SCRIPTS -->
С помощью кнопок add
и delete
я смог сгенерироватьстрокиКогда я нажимаю «отправить», «берет только последнюю строку» и добавляет в БД из списка.
Если у меня 10 строк, как динамически создавать записи в БД один за другим. Спасибо за помощь.