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

129
Vistas
Django usa la misma variable en diferentes funciones

Lo que intento hacer es obtener datos de una aplicación de terceros y mostrarlos en la página. Obtendré los datos en la función get_context_data y también usaré los mismos datos en el método get_initial . No pude lograr hacer eso. ¿Hay alguna manera de hacerlo?

Código de ejemplo

 class UpdateView(generic.FormView): template_name = 'test.html' form_class = myForm def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) MYVARIABLE = fetch_data_from_3rd_party_app() context["MYVARIABLE"] = MYVARIABLE return context def get_initial(self): initial = super().get_initial() # I want to assign MYVARIABLE.data to initial["data"] here. initial["data"] = MYVARIABLE return initial
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Hay un par de opciones

Primero, está el enfoque de que las vistas genéricas de Django toman y almacenan la variable en self , la asignan en algún momento inicial de la solicitud (envío, obtención, publicación, etc.) para que esté disponible para quien lo necesite.

 class UpdateView(generic.FormView): def dispatch(self, request, *args, **kwargs): self.myvariable = fetch_data_from_3rd_party_app() return super().dispatch(request, *args, **kwargs) def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context["MYVARIABLE"] = self.myvariable return context def get_initial(self): initial = super().get_initial() initial["data"] = self.myvariable return initial

Soy bastante partidario de usar una propiedad almacenada en caché , asignarme a mí self fuera de __init__ parece un poco incorrecto (aunque no tiene nada de malo)

 from django.utils.functional import cached_property class UpdateView(generic.FormView): @cached_property def myvariable(self): return fetch_data_from_3rd_party_app() def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context["MYVARIABLE"] = self.myvariable return context def get_initial(self): initial = super().get_initial() initial["data"] = self.myvariable return initial
over 4 years ago · Santiago Trujillo 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