Цикл Django request.POST

Как я могу просмотреть данные запроса и отправить их в виде одной строки в базу данных, пользователь может отправить несколько описаний, длин и так далее, проблема в том, что в базе данных создается огромное количество строк, чтобы получить правильный формат последнего A1, но пользователь может отправить A1,1,1,1,1,1; A2,2,2,8,100 и так далее, так как это динамическая форма добавления)

descriptions  = request.POST.getlist('description')
    lengths = request.POST.getlist('lengthx')
    widths = request.POST.getlist('widthx')
    depths = request.POST.getlist('depthx')
    quantitys = request.POST.getlist('qtyx')
    for description in descriptions:
        for lengt in lengths:
            for width in widths:
                for depth in depths:
                    for quantity in quantitys:
                        newquoteitem = QuoteItem.objects.create(  
                        qdescription=description,
                        qlength=lengt,
                        qwidth=width,
                        qdepth=depth,
                        qquantity=quantity,
                        quote_number=quotenumber,
                        )

нижняя запись верна

постовая система

Первые решения
. Используйте наборы форм. Это именно то, для чего они предназначены.

Второе решение
. descriptions = request.POST.getlist('description') возвращает список all описаний, поэтому, допустим, их 5, итерация выполняется 5 раз. Теперь lengths = request.POST.getlist('lengthx') - это список длин all, опять же, их 5, поэтому он будет повторяться 5 раз, а так как он вложен в цикл описания for, то это 25 раз!

Итак, хотя я все еще думаю, что наборы форм - это путь, вы можете попробовать следующее:

descriptions = request.POST.getlist('description')
lengths = request.POST.getlist('lengthx')
widths = request.POST.getlist('widthx')
depths = request.POST.getlist('depthx')
quantitys = request.POST.getlist('qtyx')

for i in range(len(descriptions)):
    newquoteitem = QuoteItem.objects.create(  
        qdescription=descriptions[i],
        qlength=lengths[i],
        qwidth=widths[i],
        qdepth=depths[i],
        qquantity=quantitys[i],
        quote_number=quotenumber,
    )

Здесь, если есть 5 описаний, то len(descriptions) будет 5, и есть один цикл, который будет итерироваться 5 раз в общей сложности.

Вернуться на верх