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

182
Visualizações
¿Cómo pasar datos a una plantilla sin pasarlos por la vista?

Tengo un archivo base.html donde en la barra lateral recorre todos los espacios dentro de mi modelo de Espacios y los muestra como enlaces. Me pregunto, en lugar de pasar estos espacios a través de cada vista, ¿hay alguna manera de tenerlos en la plantilla base? Intenté buscarlo y encontré etiquetas de plantilla, pero no creo que sean lo que estoy buscando.

Base.html

 <div class="sidenav"> <h2>Spaces:</h2> {% for space in spaces %} <a href="/{{space}}">{{space}}</a> {% endfor %} </div>

En este momento estoy pasando 'espacios' a través de mis vistas, pero no quiero tener que hacer eso en cada vista que creo.

¡Cualquier ayuda sería apreciada!

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Para tener alguna variable global para todas las plantillas, Django proporciona un context processor . Un procesador de contexto es una función de Python que toma el objeto de la solicitud como argumento y devuelve un diccionario que se agrega al contexto de la solicitud.

Puede agregar los objetos de spaces en el procesador de contexto de esta manera:

nombre_aplicación/procesadores_contexto.py

 from .app_name import Space def spaces(request): # It must return a dictionary don't forget return {'spaces': Space.objects.all()}

En su procesador de contexto, crea una instancia del espacio utilizando el objeto de solicitud y lo pone a disposición de las plantillas como una variable denominada spaces .

configuración.py

Y luego, debe agregar este procesador de contexto personalizado en la variable TEMPLATES en settings.py de esta manera:

 TEMPLATES = [ { # ... 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', # Customs 'app_name.context_processors.space', ], }, ]

template.html Ahora tiene acceso a spaces variables en todas las plantillas del proyecto.

 <div class="sidenav"> <h2>Spaces:</h2> <!-- spaces variable is in all templates --> {% for space in spaces %} <a href="/{{space}}">{{space}}</a> {% endfor %} </div>
over 4 years ago · Santiago Trujillo 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