Fundamentos de Django
¿Qué es Django?
¿Cómo instalar Django?
Entendiendo la arquitectura de Django
Qué es el patrón MVT (Model, View y Template)
La M en el Patrón: Modelo
Introducción a Modelos y Bases de Datos
Manejo Avanzado de Modelos y Bases de Datos
Gestión de Modelos y Bases de Datos en Django con SQLite
Inserción de Datos con Django
Actualización y Eliminación de Datos en Django
Relaciones y Asociaciones entre Modelos
Creación y Gestión de Relaciones entre Modelos en Django
Relaciones Muchos a Muchos (N:N) en Django
Relaciones Uno a Uno (1:1) en Django
Queries y Filtros en Django: Optimización y Estrategias Avanzadas
Configuración de URLs y Vistas Avanzadas
Gestión de URLs en Django: Configuración, Rutas y Mejores Prácticas
Vistas Basadas en Clases en Django
La T en el Patrón: Plantillas o Templates
Personalización de Interfaz con Plantillas en Django
Desarrollo de Aplicaciones en Django
Configuración del Proyectos en Django
Creación del Modelo para la Aplicación 'Products' en Django
Cómo Crear Migraciones de Datos en Django
Creación de la Aplicación 'Products' con Formularios en Django
Integracion de TailwindCSS en Django
Django Admin
Manejo de Sesiones en Django
Manejo de Órdenes en CoffeShop
Manejo de Pedidos en CoffeShop
Mixings en vistas basadas en clases
Agregar productos a la orden
Django Rest Framework
Django REST Framework
Despliegue de aplicaciones Django
Configurar PostgreSQL en AWS con Django
Variables de entorno en Django
¿Cómo usar Unit Testing en Django?
Debugging en Django
Desplegar aplicaciones de Django en AWS
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Luis Martínez
La funcionalidad de formularios en Django permite a los desarrolladores crear, validar y gestionar formularios de manera eficiente y organizada. A continuación, exploraremos cómo crear formularios en Django paso a paso.
Para crear un nuevo formulario en Django, primero se debe crear una clase que herede de forms.Form
. Esta clase contendrá todos los campos que queremos incluir en el formulario.
from django import forms
class ProductForm(forms.Form):
name = forms.CharField(max_length=200, label='Nombre')
description = forms.CharField(max_length=300, label='Descripción')
price = forms.DecimalField(max_digits=10, decimal_places=2, label='Precio')
available = forms.BooleanField(initial=True, label='Disponible', required=False)
photo = forms.ImageField(label='Foto', required=False)
Una vez que el formulario está creado, necesitamos definir cómo manejar los datos cuando el usuario envía el formulario. Esto incluye validar los datos y guardarlos en la base de datos.
def save(self):
from .models import Product
data = self.cleaned_data
Product.objects.create(
name=data['name'],
description=data['description'],
price=data['price'],
available=data['available'],
photo=data['photo']
)
La vista conecta el formulario con el template y maneja el request del usuario. Usaremos una vista genérica de Django para simplificar este proceso.
from django.views.generic.edit import FormView
from django.urls import reverse_lazy
from .forms import ProductForm
class ProductFormView(FormView):
template_name = 'products/add_product.html'
form_class = ProductForm
success_url = reverse_lazy('product_list')
def form_valid(self, form):
form.save()
return super().form_valid(form)
Es necesario configurar las URLs para que la vista esté accesible desde el navegador.
from django.urls import path
from .views import ProductFormView
urlpatterns = [
path('add/', ProductFormView.as_view(), name='add_product')
]
El template define la estructura HTML del formulario y cómo se renderiza en la página web.
<h1>Agregar Producto</h1>
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Agregar</button>
</form>
El CSRF token es una medida de seguridad que protege contra ataques de tipo Cross-Site Request Forgery. Django lo incluye automáticamente en los formularios para asegurar que las solicitudes provengan de fuentes confiables.
La redirección después del envío del formulario se maneja configurando el parámetro success_url
en la vista, utilizando reverse_lazy
para obtener la URL de destino.
Cuando el formulario es válido, el método form_valid
se encarga de llamar al método save
del formulario para guardar el producto en la base de datos.
Aportes 17
Preguntas 8
` elements), where each form field is wrapped in its own paragraph. This is a convenient way to quickly generate an HTML form without having to manually write the HTML for each field. Here's a breakdown of how it works: ### Usage When you use `{{ form.as_p }}` in a Django template, Django automatically generates the HTML for the form, including the form fields and their labels, wrapped in `
` tags. This is particularly useful for simple forms where you want a quick and easy way to render the form fields.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?