ed92991872
Agent-Logs-Url: https://github.com/dsaub/proyecto-final/sessions/49df17c8-213a-4e23-adfe-465a0104f6a3 Co-authored-by: dsaub <54474838+dsaub@users.noreply.github.com>
56 lines
2.1 KiB
Markdown
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.
|