Los formularios de Django son un conjunto avanzado de formularios HTML que se pueden crear usando python y admiten todas las características de los formularios HTML de forma pythonic. Representar formularios de Django en la plantilla puede parecer complicado a veces, pero con el conocimiento adecuado de los formularios de Django y los atributos de los campos, uno puede crear fácilmente un formulario excelente con todas las funciones potentes. En este artículo, el formulario se representa como una tabla en la plantilla.
{{ form.as_table }} – Renderizar formularios de Django como tabla
Ilustración de {{ form.as_table }} utilizando un ejemplo. Considere un proyecto llamado geeksforgeeks
que tiene una aplicación llamada geeks
.
Consulte los siguientes artículos para comprobar cómo crear un proyecto y una aplicación en Django.
Vamos a crear un formulario Django de muestra para representarlo y mostrarlo como ejemplo. En geeks > forms.py
, ingrese el siguiente código
from django import forms # creating a form class InputForm(forms.Form): first_name = forms.CharField(max_length = 200) last_name = forms.CharField(max_length = 200) roll_number = forms.IntegerField( help_text = "Enter 6 digit roll number" ) password = forms.CharField(widget = forms.PasswordInput())
Ahora necesitamos una vista para convertir este formulario en una plantilla. Vamos a crear una vista,
from django.shortcuts import render from .forms import InputForm # Create your views here. def home_view(request): context ={} context['form']= InputForm() return render(request, "home.html", context)
Finalmente, crearemos la plantilla donde necesitamos colocar el formulario. en templates > home.html
,
<form action = "" method = "post"> {% csrf_token %} <table> {{ form.as_table }} </table> <input type="submit" value="Submit"> </form>
Aquí {{ form.as_table }} los representará como celdas de tabla envueltas en etiquetas <tr>. Vamos a comprobar si esto funciona correctamente o no. Abra http://localhost:8000/
Verifiquemos el código fuente si el formulario se representa como una tabla o no. Representar como una tabla significa que todos los campos de entrada estarán encerrados en etiquetas <tr>.
Aquí está la demostración,
Otros metodos
- {{ form.as_p }} los renderizará envueltos en etiquetas <p>
- {{ form.as_ul }} los renderizará envueltos en etiquetas <li>
Publicación traducida automáticamente
Artículo escrito por NaveenArora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA