En mi sitio django tengo dos aplicaciones, blog y enlaces. blog tiene un blogpost modelo, y enlaces tiene un enlace modelo. Debe haber una relación de uno a muchos entre estas dos cosas. Hay muchos enlaces por blogpost, pero cada enlace tiene una y solo una publicación en el blog. La respuesta simple es colocar una ForeignKey en blogpost en el modelo de enlace.Cómo modelar una clave externa en una aplicación Django reutilizable?
Eso está muy bien, sin embargo, hay un problema. Quiero que la aplicación de enlaces sea reutilizable. No quiero que dependa de la aplicación del blog. Quiero poder utilizarlo de nuevo en otros sitios y tal vez asociar enlaces con otras aplicaciones y modelos que no sean blogpost.
Una clave externa genérica parece que podría ser la respuesta, pero no realmente. No deseo que los enlaces se puedan asociar con ningún modelo en mi sitio. Solo el que especifico explícitamente. Y sé por experiencia previa que puede haber problemas al usar claves externas genéricas en términos de uso de la base de datos porque no se puede hacer una select_related sobre una clave externa genérica de la forma en que se puede con una clave externa normal.
¿Cuál es la forma "correcta" de modelar esta relación?
Olvidé que django le permite usar nombres de modelo de cadena para esto. +1 – SingleNegationElimination
Oh wow, una gran idea para usar la configuración. ¡Gracias! – Apreche
Tenga en cuenta que este enfoque requeriría que se creen nuevas migraciones en el nivel de aplicación reutilizable. – Bula