Estoy trabajando en un proyecto Python/Django/Wagtail, y en algún momento tengo una clase como esta:
class SuperClass(BaseClass): body = StreamField([ ('overview_speakers', OverviewSpeakers()), ]) def some_function(): return 'Hola'OverviewSpeakers es una clase que espera un argumento y quiero intentar pasar los resultados de some_function()
Probé ambos:
body = StreamField([ ('overview_speakers', OverviewSpeakers(self.some_function())), ])y
body = StreamField([ ('overview_speakers', OverviewSpeakers(SuperClass.some_function())), ])Pero, respectivamente, grita que self o SuperClass no están definidos.
¿Qué puedo hacer para pasar los resultados de la función?
Mira esto:
class SuperClass(BaseClass): def some_function(): return 'Hola' body = StreamField([ ('overview_speakers', OverviewSpeakers(some_function())), ])No puede hacer referencia a una clase que se está definiendo, pero puede agregarle atributos después de definirla. Así que esto debería funcionar:
class SuperClass(BaseClass): def some_function(): return 'Hola' SuperClass.body = StreamField([ ('overview_speakers', OverviewSpeakers(SuperClass.some_function())), ])