Estoy trabajando en un proyecto de Django que está separado en 5 aplicaciones (cada una tiene 3-6 modelos). En general, este proyecto definitivamente es algo que reutilizaría en otros proyectos, pero solo sería útil si incluyera todas las aplicaciones porque están intrínsecamente relacionadas.
Por lo tanto, quiero empaquetar este proyecto para hacerlo reutilizable siguiendo los documentos de Django y Django cookiecutter django package . Sin embargo, estos ejemplos solo muestran cómo empaquetar con una sola aplicación.
Por lo que he leido hay algunas opciones:
Estoy planeando usar la opción 3 porque creo que la opción 1 es exagerada y la opción 2 se considera una mala práctica (consulte esta publicación y esta publicación ). El problema que veo con la opción 3 es que un proyecto que usa este paquete tendría que instalar las 5 aplicaciones en INSTALLED_APPS así:
INSTALLED_APPS = [ 'project', 'project.app1', 'project.app2',... ] ¿Hay alguna forma de evitar tener que instalar todas las aplicaciones en INSTALLED_APPS si empaqueto el proyecto con 5 aplicaciones? ¿O es mejor la opción 1 o 2 para este caso de uso?
Si las aplicaciones están muy acopladas y solo se pueden usar juntas, en mi opinión, no tiene sentido tenerlas en paquetes diferentes. Entonces, la opción 3 es la respuesta: colóquelos todos en un solo paquete instalable a través de setup.py si es privado, o publíquelo en pip si es público.
Complemento desvergonzado: para otros consejos relacionados con las aplicaciones de Django, es posible que le interese mi charla "Su aplicación Django es una interfaz de usuario": https://www.youtube.com/watch?v=Mnzvjn1v1CY (diapositivas aquí )