Я создаю панель управления django, куда пользователи могут загружать свои сертификаты опыта.
Проблема заключается в том, что раздел сертификации отправляет дублированные записи в представление django с пустыми идентификаторами, а логические значения c в представлениях создают дублирующиеся записи в базе данных.
Проблема, которую я обнаружил, заключается в том, что форма отправляет дубликаты записей без идентификаторов.
сертификат. html
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
{% for c in cert %}
<input type="text" name="id" value="{{c.id}}">
<label>Month</label>
<input type="text" class="form-control" id="field-value" name = "month" value = "{{c.month}}">
<label>Year</label>
<input type="text" class="form-control" id="field-value" name = "year" value = "{{c.year}}">
<label>Company</label>
<select class="form-control" id="field-value" name = "company">
{% if c.company %}
<option value = "{{c.company}}">{{c.company}}</option>
{% endif %}
<option value="Microsoft">Microsoft</option>
<option value="TEDx">TEDx</option>
<option value="Business Standard">Business Standard</option>
<option value="EF Standard English Test">EF Standard English Test</option>
<option value="Open2Study">Open2Study</option>
<option value="eMarketing Institute">eMarketing Institute</option>
<option value="Amazon">Amazon</option>
<option value="Airbnb">Airbnb</option>
<option value="Adobe">Adobe</option>
<option value="Paypal">Paypal</option>
<option value="Intel">Intel</option>
<option value="eBay">eBay</option>
<option value="Beats">Beats</option>
</select>
<label>Title</label>
<input type="text" class="form-control" id="field-value" name = "title" value="{{c.title}}">
<label>Certificate</label>
<input type="file" class="form-control" id="field-value" name = "img" value="{{c.img}}">
{% endfor %}
<button type="submit" name = "cert-sec" class="btn btn-info">Submit</button>
<button type="reset" class="btn btn-dark">Reset</button>
</form>
views.py
elif 'cert-sec' in request.POST:
idi = request.POST.getlist('id')
month = request.POST.getlist('month')
year = request.POST.getlist('year')
company = request.POST.getlist('company')
title = request.POST.getlist('title')
img = request.POST.getlist('img')
print(idi)
print(len(title))
for i in range(len(title)):
certi = Certification(month = month[i], year = year[i], company = company[i], title = title[i], img=img[i])
if idi[i] is None or idi[i] is '':
certi.save()
elif idi[i] is not None and certi in cert:
cer = Certification.objects.get(id = idi[i])
#print(edi.id)
cer.month = month[i]
cer.year = year[i]
cer.company = company[i]
cer.title = title[i]
cer.img = img[i]
return redirect('homepage')
пожалуйста, срочно нужна помощь. Спасибо.