template create app django django-models django-apps

create - Compartir modelos entre las aplicaciones de Django



django documentation (4)

La respuesta es sí. Está perfectamente bien que una aplicación dentro de su proyecto django pueda importar modelos desde otra aplicación. El poder de un proyecto django radica en las aplicaciones y sus interacciones.

También asegúrese de tener aplicaciones de utilidad importando modelos de aplicaciones más genéricas y no a la inversa. Así que la aplicación "userstatistics" debería importar modelos de la aplicación "users", pero la aplicación "users" no debería depender de las "estadísticas del usuario".

Si su aplicación está importando modelos de una aplicación de terceros (digamos django-piston), asegúrese de especificar eso en un archivo de requisitos.

Seré breve: para trabajar en el espíritu y la idea de una aplicación Django, ¿está bien que una aplicación importe modelos desde otra aplicación? Por ejemplo, una aplicación de estadísticas de usuario importará modelos de una aplicación de usuario, como: desde users.models import users


No hagas esto Tendrán el mismo nombre de aplicación y el ORM se confundirá. Use un modelo abstracto en su lugar, y ambos se derivan de él.



Si está creando una aplicación interna que no tiene posibilidades de ser lanzada al público, asegúrese de hacer lo que quiera.

Si está creando una aplicación interna que tiene pocas posibilidades de ser lanzada al público, pero posiblemente será utilizada por desarrolladores futuros / actuales, claro, pero asegúrese de documentar qué necesita la aplicación para funcionar correctamente.

Si está compilando una aplicación para su publicación, intente mantenerla autodependiente (y depende de django-internal, es decir, use lo que django proporciona, cuando sea posible). Si realmente necesita una aplicación de terceros para trabajar, o si una aplicación de terceros haría que su código sea más manejable, entonces seguro, incluya dependencias, pero esté doblemente seguro de documentar todos los requisitos y la configuración necesaria.

En la mayoría de los casos, puede hacer casi lo que quiera siempre que tenga suficiente documentación.

Sin embargo, tengo que cuestionar la sensatez de crear su propio modelo de User que tenga el mismo nombre que el auth.User incorporado auth.User django.