Я использовал этот сайт в качестве примера как сделать динамическую форму в 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]
?