He estado usando this site como un ejemplo de cómo hacer una forma dinámica en Django. En su opinión se utilizaAccediendo a datos POST en forma de Django
if request.method == 'POST':
form = UserCreationForm(request.POST)
para pasar los datos en la forma y en la forma que utiliza el constructor
extra = kwargs.pop('extra')
acceder a los datos POST. Traté de hacer algo similar con mi punto de vista:
def custom_report(request):
if request.method=='POST':
form=CustomQueryConstraintForm(request.POST)
else:
form=CustomQueryConstraintForm()
return render(request, 'frontend/custom_report.html', {'form':form})
En mi forma constructor Imprimí args
y kwargs
y encontró que kwargs
está vacío y args
es una tupla que contiene el QueryDict
que a su vez contiene los datos POST. Si, en cambio, trato de usar form=CustomQueryConstraintForm(**request.POST)
, cada elemento en kwargs
es una lista que contiene el valor del campo como su único elemento. ¿Estoy haciendo algo mal aquí? De lo contrario, ¿hay una manera más elegante de acceder a los datos que args[0][element_name][0]
?
Gracias, eso funcionó para mí. Todavía estoy confundido acerca de por qué los datos POST aparecieron en 'kwargs' en el ejemplo, pero no en mi código. – murgatroid99
¿De qué ejemplo estás hablando? El ejemplo en la publicación a la que vinculó dice extra es una lista de cadenas, no datos POST. Si desea publicar datos como kwarg, simplemente pase ''mykwarg = request.POST' y luego' kwargs.pop (' mykwarg ') 'en su función' __init__'. –
Estás en lo correcto. Leí mal el código en esa página. – murgatroid99