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

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

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 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