Buenas noches amigos del foro. Estoy trabajando en un proyecto en Django y me he encontrado con un problema bastante interesante (al menos eso parece, espero que sea una tontería).
Resulta que, debido a que es un proyecto relativamente grande, la "API" sobre los modelos iba creciendo y creciendo haciendo engorroso el trabajo, por lo que decidí pasar a utilizar wrappers. Básicamente, si antes tenía una estructura así:
Código Python:
Ver original# models.py
class MyModel(models.Model):
prop1 = ...
prop2 = ...
def f1(self):
pass
def f2(self):
pass
Ahora estoy así:
Código Python:
Ver original# models.py
class MyModel(models.Model):
prop1 = ...
prop2 = ...
# wrappers.py
from myapp import models
class MyModel(models.MyModel):
def f1(self):
pass
def f2(self):
pass
Lo cual me permite separar definición de funcionalidad. Sin embargo, a la hora de la verdad, myapp.wrappers.MyModel se convierte mágicamente en myapp.models.MyModel, y por tanto al intentar ejecutar f1 me da un AttributeError, pues el modelo no tiene ese método.
Mi pregunta es: ¿qué coj*#$@ está pasando ahí? ¿Se debe a que el modelo y el wrapper se llaman igual? ¿Hay algún fallo en mi razonamiento?
Saludos y gracias por la ayuda :)