Veo algunas preguntas similares, pero no parecen ser las mismas o no tienen respuestas.
Estoy practicando con Django y tratando de hacer un proyecto simple de subasta holandesa. Inicialmente pensé que la idea sería crear dos aplicaciones distintas, una aplicación de comprador y una aplicación de vendedor, y simplemente hacer que compartan bases de datos (o tres aplicaciones, una aplicación común, una aplicación de comprador y una aplicación de vendedor). Sin embargo, cuanto más profundizo en esto, más complicado parece: siento que Django no está destinado a tener diferentes aplicaciones diseñadas para compartir todos sus datos de un conjunto de tablas (¿tal vez me equivoco?), vagamente basado en lo que he encontrado acerca de tener que modificar la forma en que funcionan las Migraciones para adaptarse a esto.
Así que la idea n.° 2 consiste en crear una aplicación que separe la funcionalidad mediante la administración cuidadosa de las vistas, pero manteniendo solo un conjunto de modelos, ya que casi todos los datos que se me ocurren (los usuarios, los productos, etc.) se comparten de todos modos. Parece que esto tiene la ventaja de dejar que Django haga toda la gestión de datos sin que yo tenga que preocuparme por el diseño de la base de datos. Sin embargo, me preocupa que tal vez administrar las vistas sea demasiado complicado.
Tal vez haya una idea #3 que tenga sentido para este tipo de proyecto, una que no he considerado porque soy un novato, tal vez una que me diga que Django ni siquiera es la herramienta adecuada para este trabajo...
Probé la idea de programación n. ° 1 y rápidamente se convirtió en espagueti y solo funcionó cuando las cosas eran muy pequeñas. Actualmente estoy trabajando en la idea n. ° 2 y hasta ahora creo que va bien, pero tengo problemas para conceptualizar cómo separar cosas en las vistas, pero esto podría deberse a mi falta de experiencia.
Entonces mi pregunta es: ¿existe un recurso obvio para este tipo de información que me falta? Si es así, ¿podría indicarme de esa manera?
Dentro de tu proyecto Django:
manage.py startapp sellers manage.py startapp buyers manage.py startapp common Agregue estas tres aplicaciones a settings.py . Dependiendo de la versión de su Django, puede ser solo 'sellers' , 'buyers' , 'common' o 'seller.apps.SellerConfig' y así sucesivamente.
Escriba sus modelos en common/models.py y cualquier otra lógica relacionada con ambas aplicaciones.
Luego, en sus vistas de vendedor o comprador:
from common.models import * # or a particular model
Espero que esto ayude.