Как добавить атрибут HTML со значением из базы данных?
Делаю такую вещь: на странице выводится табличка из моей базы данных, в конце каждого ряда кнопка сохранить, чтобы можно было менять значения. Внизу пустая форма, чтобы можно было добавить новую строчку в базу. Не могу реализовать так как в моей верстке используется табличка, а туда нельзя засовывать в ряд формы. Думал сделать формы отдельно и привязать их к инпутам тэгом form="my-form-1". Застрял на том чтобы добавить этот тэг к самим инпутам, так как они выводятся программно а не в шаблоне. Как туда добавить этот тэг, и чтобы его значение бралось из базы данных(поле айди или поле название)? Или может есть другой способ сделать желаемое?
form.py
class TrafficSourcesForm(ModelForm):
class Meta:
model = TrafficSources
fields = ['name', 'token']
widgets = {
'name': TextInput(attrs={
'class': 'form-control',
'placeholder': 'Traffic source name'
}),
'token': TextInput(attrs={
'class': 'form-control',
'placeholder': 'API-token'
})
}
views.py
def settings(request):
error = ''
if request.method == 'POST':
new_form = TrafficSourcesForm(request.POST, instance=request.POST.get('id'))
if new_form.is_valid():
# new_form.save()
error = request.POST.text
else:
error = 'Something went wrong!'
new_form = TrafficSourcesForm()
forms = [TrafficSourcesForm(instance=x) for x in TrafficSources.objects.all()]
return render(request, 'mainpage/dashboard.html', {'new_form': new_form, 'forms': forms, 'error': error})
HTML
<table class="table table-striped table-hover">
<tr>
<th style="width: 42%">Name</th>
<th style="width: 43%">Token</th>
<th style="width: 15%">Action</th>
</tr>
{% for form in forms %}
<tr>
<td>{{ form.name }}</td>
<td>{{ form.token }}</td>
<td><button class="btn btn-lg btn-success w-100" form="{{form.instance.id}}">Save</button></td>
</tr>
{% endfor %}
<tr>
<td colspan="3">Add new traffic source:</td>
</tr>
<tr>
<td><input class="form-control" placeholder="Name"></td>
<td><input class="form-control" placeholder="API-token"></td>
<td><button class="btn btn-lg btn-success w-100">Add</button></td>
</tr>
</table>