2009-08-27 6 views
11

Acabo de enterarme de que dividir las clases de modelo en diferentes archivos rompe muchas de las funcionalidades integradas de django.¿Por qué django exige que todas las clases de modelo estén en models.py?

Vengo de un fondo de Java. Allí, no se acepta como una buena práctica escribir archivos de clase muy largos. Pero la aplicación de django de un solo archivo para todas las clases de modelo probablemente hará que el programador escriba archivos models.py muy largos. Esto hará que sea difícil para el programador ver la organización del modelo de dominio completo.

Entonces, ¿por qué django impone un solo archivo para contener todas las clases de dominio?

He encontrado a solution proposal a este problema haciendo footing en Google. Pero no puedo estar seguro de si esto funcionará correctamente. ¿Sugiere esta solución?

+0

Tu enlace está muerto. ¿Podrías actualizarlo? – Gabriel

+0

Posible duplicado de [modelos.py obtener grandes, ¿cuál es la mejor manera de romperlo?] (Http://stackoverflow.com/questions/1160579/models-py-getting-huge-what-is-the-best -way-to-break-it-up) – Ajoy

Respuesta

7

Espacio de nombre único: sí. Módulo individual: no.

Sus modelos tienen que ser importables desde el espacio de nombres appname.models.

+0

Creo que esta respuesta es probablemente la correcta para esta pregunta, pero ciertamente podría ser más clara. Creo que básicamente se reduce a 'appname.models' necesita importar todos los modelos de otros módulos. Una explicación de por qué o dónde se documenta este comportamiento sería útil. – SpoonMeiser

+0

De manera similar, ¿por qué tener 'appname.models' solo importar los módulos que definen otros modelos no es suficiente? Seguramente eso desencadenaría la necesaria magia de metaclass? Si no, ¿por qué? – SpoonMeiser

Cuestiones relacionadas