La clase base tiene esta:Python: cómo reemplazar una propiedad con un atributo regular?
def _management_form(self):
# code here
return form
management_form = property(_management_form)
En mi clase derivada, estoy tratando de escribir esto:
self.management_form = self.myfunc()
Pero por supuesto que no funciona. Me dice "no puedo establecer atributo" porque esa propiedad no tiene setter. Pero no quiero configurarlo, quiero redefinir lo que significa "managent_form". Intenté poner del self.managent_form
primero, pero eso tampoco funcionó. Entonces, ¿cómo puedo desprovecharlo?
¿Estás seguro de que es una buena idea? Suena como romper la relación is-a ... – delnan
Bueno, como se define la propiedad, reconstruye el objeto cada vez que lo usas, lo cual es simplemente estúpido. Puse una declaración de impresión allí, y se llama como 10 veces, y está causando problemas porque necesito modificar algunas de sus propiedades, pero es inútil si va a ser reemplazada la próxima vez que se use. No tengo idea de por qué ellos (los desarrolladores de Django) lo hicieron así. Básicamente, solo quiero que se construya una vez y luego devolver esa instancia a partir de ese momento. – mpen