Как обрабатывать несколько форм Django в request.POST
Допустим, у меня есть форма, которая содержит следующие значения после отправки формы:
print(request.POST)
:
<QueryDict: {'csrfmiddlewaretoken': ['3oveeCkYroBwKNSLw8wOr8dtURYGcO9AtOKYfPoNbf8q3L5Az7aEAnJaQldYmnaG'], 'user': ['1'], 'reset': ['false'], 'project': ['100001'], 'contents': ['test'], 'amount': ['3'], 'currency': ['JPY'], 'expense_date': ['09/22/2021'], 'store_company_client_name': ['test'], 'expense_category': ['Staffing payments'], 'note': ['fdv']}>
Что если у меня несколько входов, и я получаю request.POST
вот так:
<QueryDict: {'csrfmiddlewaretoken': ['xbdRWXh4LdKTTJoCMJa7O53lApbY03byXBsBXalTv4hNcHBrPIOXXkz2wTqgaCcE'], 'user': ['1','1','1'], 'expense_date': ['09/22/2021', '09/21/2021', '09/20/2021'], 'project': ['100001', '100002', '100002'], 'expense_category': ['Staffing payments', 'Staffing payments', 'Staffing payments'], 'expense_type': ['Salaries', 'Salaries', 'Salaries'], 'contents': ['test', 'test', 'test'], 'currency': ['1', '1', '1'], 'amount': ['12', '1', '4'], 'store_company_client_name': ['customer1', 'customer2', 'customer3'], 'note': ['lorem ipsum', 'lorem ipsum', 'lorem ipsum']}>
Как я могу обработать его в back-end?
Сейчас для простой формы у меня есть такой вид:
def new_expense(request):
data = {
'title': "New Expense",
}
data['projects'] = Project.objects.filter(is_visible=True).values('id')
data['expense_category'] = dict((y, x) for x, y in EXPENSE_CATEGORY)
data['expense_type'] = dict((y, x) for x, y in EXPENSE_TYPE)
form = ExpenseForm()
if request.method == "POST":
print(request.POST)
reset = request.POST['reset']
form = ExpenseForm(request.POST)
if form.is_valid():
form.save()
if reset == 'true':
form = ExpenseForm()
data['form'] = form
return render(request, "expense/new_expense.html", data)
И я хочу создать новое представление, способное делать то же самое, что и new_expense
, но только для больших объемов данных/вкладов, скажем, multiple_new_expense для обработки request.POST
.
каков был бы наиболее питонический способ решения этой проблемы...?