Django зацикливает все существующие записи для сохранения, но сохраняет только одну запись - PullRequest
0 голосов
/ 06 ноября 2019

это мой код в html

<tr>
    <td colspan="2" style="text-align: center;">
        <h2 style="font-weight: bold;">Required Documents:</h2>
    </td>
</tr>
{% for d in doc %}
<tr>
    <td style="text-align: left;">
        <input type="file" name="myfile-{{d.id}}" value="{{d.id}}" style="outline: none;" required/>
        {{d.id}}{{d.Description}}
    </td>
    <td></td>
</tr> 
{% endfor %}

views.py

def enrollmentform(request):
    id = request.GET.get('StudentID')
    students = StudentProfile.objects.all().filter(id=id)
    doc = DocumentRequirement.objects.all().filter()
    return render(request, 'accounts/EnrollmentForm.html',
                  {"doc": doc})

это моя логика о том, как сохранить мою запись

myfile = request.FILES['myfile-6']
fs = FileSystemStorage()
filename = fs.save(myfile.name, myfile)
uploaded_file_url = fs.url(filename)
V_insert_data = StudentsEnrollmentRecord(
    Student_Users=studentname, Payment_Type=payment,
    Education_Levels=educationlevel, School_Year=schoolyear
)
insert_doc = StudentsSubmittedDocument(
    Students_Enrollment_Records =  V_insert_data,
    Document = myfile
)
insert_doc.save()

У меня нет представления о том, как это зациклить myfile = request.FILES ['myfile-6'] * ​​1013 * с существующим идентификатором Table Documents. Пожалуйста, помогите мне, ребята, я застрял в этой проблеме 3 дня

Например, если студент выполнит 4 обязательных документа, он сохранит вот так

правильно

в моем случае это только 1 запись,

неправильное сохранение

1 Ответ

1 голос
/ 06 ноября 2019

У вас может быть много входов с одинаковым именем, это можно повторить.

<input type="file" name="myfile">

По вашему мнению, этот список отправленных файлов можно получить с помощью getlist

files = request.FILES.getlist('myfile')

Затем вы перебираете файлы в вашем представлении

V_insert_data = StudentsEnrollmentRecord(
    Student_Users=studentname,
    Payment_Type=payment,
    Education_Levels=educationlevel,
    School_Year=schoolyear
)
for file in request.FILES.getlist('myfile'):
    StudentsSubmittedDocument.objects.create(
        Students_Enrollment_Records=V_insert_data,
        Document=file
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...