Consentimiento de cookies para Django
El banner es una etiqueta en base.html, con la clave de tus settings a través de un context processor. Los consentimientos que piden tus formularios se registran desde la vista con una llamada HTTP, cada uno con su justificante firmado.
Configúralo con tu agente de IA
Conecta el servidor MCP de Croombit a tu editor o agente de código y pega esto. Crea el sitio, las categorías de cookies y el banner, y edita tu código.
Con Croombit: crea un sitio para este proyecto y mantén las categorías de cookies que trae. Escribe el texto del banner y publícalo. Crea una clave publicable de TEST para localhost:3000. Es un proyecto Django: añade un context processor croombit que exponga CROOMBIT_PUBLISHABLE_KEY, pon la etiqueta de cmp.js al principio del <head> de templates/base.html y registra el campo newsletter de nuestra vista de alta con requests.post a /v1/consent usando CROOMBIT_SECRET_KEY.El agente trabaja en TEST. Pasar a LIVE son dos pasos en la consola: verificar tu dominio y cambiar a una clave LIVE; consulta pasar a LIVE.
O a mano
1. Settings y un context processor
# settings.py
CROOMBIT_PUBLISHABLE_KEY = os.environ["CROOMBIT_PUBLISHABLE_KEY"] # pk_test_… / pk_live_…
CROOMBIT_SECRET_KEY = os.environ["CROOMBIT_SECRET_KEY"] # sk_… — server only
TEMPLATES[0]["OPTIONS"]["context_processors"].append("core.context_processors.croombit")
# core/context_processors.py
from django.conf import settings
def croombit(request):
return {"CROOMBIT_KEY": settings.CROOMBIT_PUBLISHABLE_KEY}2. Añade la etiqueta a base.html
{# templates/base.html #}
<head>
<meta charset="utf-8">
<script src="https://croombit.com/cmp.js" data-tc-api-key="{{ CROOMBIT_KEY }}"></script>
{# …everything else after it #}
</head>3. Retén los rastreadores
Etiquetas en tus plantillas: type="text/plain" más data-tc-consent. Quedan inertes hasta que el visitante acepta esa categoría.
<script type="text/plain" data-tc-consent="analytics" async
src="https://www.googletagmanager.com/gtag/js?id=G-XXXX"></script>
<script type="text/plain" data-tc-consent="analytics">
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXX');
</script>4. Registra consentimientos desde la vista
Un POST /v1/consent normal con tu clave secreta. La cabecera Idempotency-Key hace que reintentar sea seguro. Consulta Registrar y consultar consentimiento.
import uuid
import requests
from django.conf import settings
# e.g. in the view that handles your signup form
requests.post(
"https://api.croombit.com/v1/consent",
headers={
"Authorization": f"Bearer {settings.CROOMBIT_SECRET_KEY}",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"subject": f"email:{user.email}",
"purpose": "newsletter",
"state": "GRANTED" if form.cleaned_data["newsletter"] else "DENIED",
"channel": "signup_form",
},
timeout=10,
).raise_for_status()Preguntas
Uso django-csp. ¿Qué permito?
https://croombit.com en script-src para el banner y https://api.croombit.com en connect-src para sus llamadas.
¿Funciona con Wagtail?
Sí. Wagtail renderiza con plantillas de Django; añade la etiqueta a la plantilla base que extienden tus páginas.
Relacionado
- Consentimiento de cookies para cualquier web
- Consentimiento de cookies para Next.js
- Consentimiento de cookies para React
- Consentimiento de cookies para Vue y Nuxt
- Consentimiento de cookies para Astro
- Consentimiento de cookies para SvelteKit
- Consentimiento de cookies para React Router y Remix
- Consentimiento de cookies para Laravel
- Consentimiento de cookies para Ruby on Rails
- Consentimiento de cookies para WordPress
- Consentimiento de cookies para Webflow
- Consentimiento de cookies para Framer
- Consentimiento de cookies para Hugo y Jekyll
- Guía: banner de cookies
- Consola: Cookies (escáner)
- TCF, Consent Mode y GPP
- Google Consent Mode v2: modo básico frente a avanzado