Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

192
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda