Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

181
Vistas
Revalide bajo demanda un sitio Next.js desde el método de guardado del modelo Django

Tengo un sitio next.js implementado en Vercel, que obtiene datos de una API proporcionada por Django. Next.js tiene esta nueva función (regeneración estática incremental bajo demanda) en la que puede reconstruir una página específica sin necesidad de reconstruir todo el sitio con una URL como esta:

https://<mi-sitio.com>/api/revalidate?secret=my-token

Necesito que el sitio next.js reconstruya algunas páginas cuando cambie la base de datos, para que muestre los nuevos datos, y traté de hacer una solicitud (con el paquete de solicitudes) en el método de guardado como este:

 def save(self, *args, **kwargs): super(MyModel, self).save(*args, **kwargs) r = requests.get("https://<my-site.com>/api/revalidate?secret=<my-token>")

Parece funcionar cuando activo esa URL desde mi navegador, pero no funciona cuando lo activo desde Django. La respuesta de este objeto de respuesta (r) es un código de estado 200, como se esperaba, con {"revalidado": verdadero} (r.text), pero de todos modos no actualiza el sitio.

¿Cómo puedo implementar esto?

EDITAR: aquí está el código de pages/api/revalidate.js:

 export default async function handler(req, res) { if (req.query.secret !== process.env.MY_SECRET_TOKEN) { return res.status(401).json({ message: 'Invalid token' }) } try { await res.unstable_revalidate('/') await res.unstable_revalidate('/url') return res.json({ revalidated: true }) } catch (err) { return res.status(500).send('Error revalidating') } }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Tenía un problema similar. Creo que no estaba funcionando porque en realidad necesitas guardar antes de la revalidación.

Esto funcionó para mí:

 def save(self, *args, **kwargs): try: return super().save(*args, **kwargs) finally: r = requests.get("https://<my-site.com>/api/revalidate?secret=<my-token>")
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda