docs: add full documentation for all functions in tienda/views.py
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>
This commit is contained in:
committed by
GitHub
parent
47ea00c822
commit
ed92991872
@@ -0,0 +1,35 @@
|
||||
# `producto`
|
||||
|
||||
**Archivo:** `tienda/views.py`
|
||||
**URL:** `/tienda/producto/<id>/`
|
||||
**Tipo:** Vista pública
|
||||
|
||||
## Descripción
|
||||
|
||||
Muestra la página de detalle de un producto. Implementa una capa de caché en Redis para mejorar el rendimiento: el producto se almacena durante 5 minutos con la clave `product_{id}`. Si el producto no está en caché, se obtiene de la base de datos junto con sus relaciones (`category`, `primary_image`, `creator`, `secondary_images`) y se guarda en caché.
|
||||
|
||||
## Firma
|
||||
|
||||
```python
|
||||
def producto(request: HttpRequest, id: int):
|
||||
```
|
||||
|
||||
## Parámetros
|
||||
|
||||
| Nombre | Tipo | Descripción |
|
||||
|-----------|---------------|--------------------------------|
|
||||
| `request` | `HttpRequest` | Petición HTTP de Django. |
|
||||
| `id` | `int` | Identificador del producto. |
|
||||
|
||||
## Contexto del template
|
||||
|
||||
| Variable | Tipo | Descripción |
|
||||
|-----------|-----------|-----------------------|
|
||||
| `product` | `Product` | Instancia del producto. |
|
||||
|
||||
## Template
|
||||
|
||||
`tienda/producto.html`
|
||||
|
||||
> [!TIP]
|
||||
> La caché se invalida automáticamente cuando el producto es editado o eliminado (ver [`editar_producto`](./editar_producto.md) y [`borrar_producto`](./borrar_producto.md)). La clave de caché tiene el formato `:1:product_{id}` en Redis (prefijo de la base de datos 1).
|
||||
Reference in New Issue
Block a user