He estado trabajando un tiempo en un proyecto de Django que ha estado creciendo un poco últimamente. He pensado un poco sobre qué estrategia utilizar para que sea más fácil de manejar. Una cosa sobre la que me gustaría obtener información sería si dividiera mi aplicación en varias aplicaciones más pequeñas. Eso reduciría mi vista y los archivos de modelo y separaría algunas de las preocupaciones.
Una cosa que me molesta con esto es que en mis aplicaciones tendría varios métodos auxiliares que se utilizarán en todas las aplicaciones. Además, algunos modelos también deberán compartirse / utilizarse en todas las aplicaciones. ¿Tendría sentido? Esto no va bien con la separación de las preocupaciones que esperaba lograr al dividir mi aplicación en varias aplicaciones más pequeñas. ¿Cuál sería un buen enfoque para compartir métodos de ayuda, modelos, etc. entre aplicaciones?
fuente
Me gusta crear una
base/
aplicación sin vistas y sin momentos para cosas compartidas.Un problema que puede ocurrir cuando tiene modelos distribuidos en varias aplicaciones es la importación circular. Esto se puede evitar utilizando cadenas para referirse a otros modelos (en
foo = ForeignKey("someapp.Foo")
lugar defoo = ForeignKey(someapp.models.Foo)
). Django te permite usar cadenas como esta en más lugares.fuente