Django: relaciones polimórficas
Django tiene varias formas de relacionar modelos entre sí: ForeingKey ManyToManyField OneToManyField Una de las limitaciones de este sistema es que esta relación es estática, solo permite la relación a un tipo de modelo. No permite relaciones polimórficas. Si conoces PHP y el framework Laravel, sabrás a que me refiero. Sin embargo, Django incluye una aplicación llamada "contenttypes" que además de permirte seguir todos los modelos instalados en tu proyecto y un interfaz para trabajar con ellos, permite generar estas relaciones polimórficas llamadas "relaciones genéricas". Ejemplo de relación genérica: Este modelo Comment está referenciando al Post en el que se incluye. ForeingKey es la relación adecuada ya que un comentario sólo pertenece a un post. Pero si quisieramos utilizar este modelo para hacer comentarios sobre otros elemntos que no fueran posts, tendríamos un problema, ya que está asociado directamente a un post. Solución: relaciones gen