Files
proyecto-final/docs/views/crear_direccion.md
T

56 lines
2.1 KiB
Markdown

# `crear_direccion`
**Archivo:** `tienda/views.py`
**URL:** `/tienda/usuario/direcciones/nueva/`
**Tipo:** Vista privada (requiere autenticación)
**Decorador:** `@login_required`
## Descripción
Muestra el formulario para crear una nueva dirección de entrega y procesa su envío.
- **GET** → Renderiza el formulario vacío con la lista de municipios de Almería.
- **POST** → Valida y crea la dirección:
- Comprueba que todos los campos obligatorios estén rellenos.
- Valida que la ciudad pertenezca a la provincia de Almería.
- Valida que el código postal sea de Almería (`04xxx`).
- Guarda la dirección asociada al usuario con el país fijo `España`.
## Firma
```python
def crear_direccion(request: HttpRequest):
```
## Parámetros
| Nombre | Tipo | Descripción |
|-----------|---------------|-----------------------|
| `request` | `HttpRequest` | Petición HTTP de Django. |
## Campos del formulario POST
| Campo | Obligatorio | Descripción |
|-------------------|-------------|-----------------------------------------------|
| `full_name` | Sí | Nombre completo del destinatario. |
| `address_line_1` | Sí | Línea principal de la dirección. |
| `address_line_2` | No | Línea secundaria (piso, puerta, etc.). |
| `city` | Sí | Municipio (debe pertenecer a Almería). |
| `postal_code` | Sí | Código postal (`04xxx`). |
| `phone` | Sí | Teléfono de contacto. |
| `is_default` | No | Marcar como dirección predeterminada (`on`). |
## Redirecciones
| Caso | Destino |
|--------|-----------------------|
| Éxito | `direcciones_usuario` |
| Error | Mismo formulario |
## Template
`tienda/editar_direccion.html`
> [!IMPORTANT]
> Solo se aceptan direcciones dentro de la provincia de Almería. El campo `country` siempre se fija a `España` y no es editable por el usuario.