Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

127
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!