Доступ к данным POST в форме Django

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

9
задан murgatroid99 29 June 2011 в 15:28
поделиться