¿Cada aplicación en un proyecto de Django tiene su propio conjunto de tablas de base de datos? En caso afirmativo, ¿se pueden compartir estas tablas?

Sí, es posible compartir tablas de bases de datos entre aplicaciones especificando la opción db_table en la clase Meta del modelo [1].

Sin embargo, esto probablemente no sea lo que quieres. Para compartir una tabla, la tabla debe incluir la unión de todos los campos en ambos modelos. La razón es que para realizar una consulta en una tabla, el ORM de Django incluye todos los campos del modelo (algo así como SELECT `table`.`id`, `table`.`title`, `table`.`created` FROM `table` ... Entonces, si falta una sola columna en la tabla que se incluye en cualquiera de los Modelos, obtendrá excepciones de consulta.

Además, si alguna columna que existe únicamente en el otro Modelo tiene un NOT NULL , obtendrá errores de inserción. Y también será mejor asegurarse de que las definiciones de campo coincidan para que la columna tenga la misma definición en ambos modelos.

Con todo eso como una advertencia justa, y mucho para acertar, compartir una tabla entre aplicaciones debería funcionar.

[1]: documentación de Django

Una solución más simple de lo que Chris ha sugerido es importar el modelo desde otra aplicación:

de appname.models import modelClass

Luego puede usar ese modelo como si fuera parte de la aplicación en la que está trabajando.

El atributo db_table en la clase Meta del modelo solo le permite elegir una tabla específica en la base de datos, en lugar de la que busca Django. Esto es útil para integrar tablas de bases de datos heredadas.

More Interesting

¿Cuál es la mejor manera de dividir un proyecto de desarrollo web basado en Rails entre dos desarrolladores?

¿Cuál es la forma más rápida de crear su propio sitio web?

¿Por qué los desarrolladores web evitan el raspado web?

Después de aprender un puñado de lenguaje de programación, ¿qué lenguajes son dignos de profundizar y afinar?

¿Qué es exactamente un 'marco' como Bootstrap y cómo se relaciona con la codificación en un bloc de notas?

¿Qué es mejor para ser un desarrollador web de stack medio, AngularJS o Angular?

¿Cómo puedo verificar si la entrada del usuario ya está en la base de datos?

En la mayoría de las declaraciones de doctype de los sitios, puedo ver que se está utilizando 'HTML 4.01 Transitional'. ¿Es necesario hoy en día o simplemente do?

¿Qué es SPL PHP? ¿Por qué necesitamos usarlo?

¿Cuáles son las ventajas y desventajas de utilizar el nuevo inicio de sesión de Google+ en lugar de Facebook Connect?

Cómo almacenar jquery dinámico dependiente país estado ciudad desplegable valores seleccionados en la base de datos

¿Alguien ha intentado hacer interfaces de estilo de controlador MIDI para desarrollo y diseño web?

¿Estás buscando una empresa de desarrollo de WordPress? Nuestro detalle de contacto: Dirección web: Diseño y desarrollo web Correo electrónico: [correo electrónico protegido] Número de contacto: +91 731 4216242 / + 91 9907337944

Cómo trabajar de forma independiente como diseñador web

¿Cuál es la mejor manera de buscar un archivo JSON?