Hola a todos, tengo un formulario HTML de la siguiente manera: y después de hacer clic en la publicación, lo estoy redirigiendo a views.py. ¿Alguien puede decirme cómo obtener los valores de campo de todos los campos del formulario en views.py? Aquí está el resultado. Quiero el valor del campo en el par de valores clave como se muestra en la imagen de arriba, es decir, API = hola y área = hola1, etc.
Sé que podemos hacer eso usando este si html:
<div class="form-group col-md-2"> <label for="param">TAF Parameter</label> <input type="text" name="inputdata_API" class="form-control" id="inputapi_param" value="API" readonly> </div>y ver:
def register(request): api = request.GET.get['inputdata_API']Pero en ese caso, tengo que escribir todos y cada uno de los nombres de entrada en mi vista
Para obtener entrada de formulario sin acceso individual, Django proporciona ModelForm
Para currículum:
Defina un modelo para almacenar la información de su formulario
clase MiModelo(modelos.Modelo): api = modelos.CharField() # ...
Definir un formulario de modelo vinculado al modelo anterior
from django import forms class MyModelForm(forms.Form): class Meta: model = MyModel fields = ['api', # all others fields you want to display] En las views.py
from django.http import JsonResponse from django.shortcuts import redirect def register(request): if request.method == 'POST': # Instanciate the form with posted data form = MyModelFor(request.POST) # Check if form is valid if form.is_valid: # Create a new MyModel object if the form is valid form.save() # This is the most benefit line, save you from request.POST['field_name'] # You can eventually return to the same page return redirect('.') else: # The form is invalid return a json response return JsonResponse({"Error": "Form is invalid"}, status=400)Al final, represente los campos de formulario en la plantilla de esta manera:
<form action="{% url 'url_to_register' %}" method="post" novalidate> {% csrf_token %} {{ form.as_p }} <button type="submit" class="btn btn-success">Register</button> </form>Pero la desventaja de este enfoque es el estilo del formulario en la interfaz: debe agregar alguna clase de Bootstrap, por ejemplo, en el lugar correcto para que se vea bien, es una contraparte ...
Documentación del formulario Django.