Я использовал этот сайт в качестве примера того, как создать динамическую форму в Django. По его мнению, он использует
if request.method == 'POST':
form = UserCreationForm(request.POST)
для передачи данных в форму и в конструктор формы он использует
extra = kwargs.pop('extra')
для доступа к данным POST. Я пытался сделать что-то похожее с моим видом:
def custom_report(request):
if request.method=='POST':
form=CustomQueryConstraintForm(request.POST)
else:
form=CustomQueryConstraintForm()
return render(request, 'frontend/custom_report.html', {'form':form})
В конструкторе формы я напечатал args
и kwargs
и обнаружил, что kwargs
пуст, а args
- это кортеж, содержащий QueryDict
, который, в свою очередь, содержит данные POST. Если вместо этого я попытаюсь использовать form=CustomQueryConstraintForm(**request.POST)
, каждый элемент в kwargs
будет списком, содержащим значение поля в качестве единственного элемента. Я что-то здесь не так делаю? Если нет, есть ли более элегантный способ доступа к данным, чем args[0][element_name][0]
?