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

158
Visualizações
Agregar un fragmento de JavaScript externo a un campo de página de Wagtail

Mi proyecto Wagtail actual tiene una estructura muy simple con algunas páginas genéricas que tienen solo un cuerpo RichTextField . Estas son solo páginas básicas de tipo CMS donde un editor editará algún contenido en el editor de texto enriquecido y lo publicará.

Una de las páginas (y probablemente más en el tiempo) es una página de "Se necesita ayuda" y utiliza un fragmento de JavaScript externo de un servicio de terceros que enumera las ofertas de trabajo actuales con enlaces a las aplicaciones que alojan.

Dado que agregar una etiqueta <script> al editor de texto enriquecido simplemente lo escapa y muestra solo el valor del texto, agregué extra_scripts = models.TextField() adicional a mi modelo de página junto con un FieldPanel('extra_scripts') al contenido paneles Esto permite que un usuario pegue algunos fragmentos de JavaScript arbitrarios.

Si incluyo este valor de campo en mi plantilla con {{page.extra_scripts}} , solo muestra el contenido y no ejecuta javascript. Mirando a través de las wagtailcore_tags disponibles, no veo un filtro que deba usar para ejecutar el contenido, y cuando se usa con una etiqueta {{}} , supongo que el motor de plantillas lo maneja para que no se ejecute.

¿Cómo puedo incluir este campo en una plantilla para que se ejecute el javascript?

Sé que puedo cambiar el campo para que solo sea el contenido javascript real sin la etiqueta <script> , pero el fragmento también incluye algunos elementos HTML básicos, y los usuarios finales no sabrán intuitivamente que necesitan editar manualmente el proporcionado fragmento si solo les doy un campo para pegar ciertas partes del fragmento. Quiero que el usuario final pueda simplemente copiar/pegar el fragmento que obtiene y hacer que funcione sin que necesite entender nada más.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Esto es el resultado del comportamiento de escape automático del lenguaje de plantilla Django y se puede anular agregando un filtro |safe :

 {{ page.extra_scripts|safe }}

Por supuesto, solo debe hacer esto si sus usuarios editoriales son de plena confianza, ya que les dará la capacidad de ejecutar código arbitrario (incluido, por ejemplo, secuestrar la cookie de sesión de un superusuario que visita esa página).

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