Quiero conectar un solo ForeignKey
a dos modelos diferentes.¿Cómo se usa la clave externa dinámica en Django?
Por ejemplo:
Tengo dos modelos nombrados Casts
y Articles
, y un tercer modelo, Faves
, para favoriting cualquiera de los otros modelos. ¿Cómo puedo hacer que el ForeignKey
sea dinámico?
class Articles(models.Model):
title = models.CharField(max_length=100)
body = models.TextField()
class Casts(models.Model):
title = models.CharField(max_length=100)
body = models.TextField()
class Faves(models.Model):
post = models.ForeignKey(**---CASTS-OR-ARTICLES---**)
user = models.ForeignKey(User,unique=True)
¿Esto es posible?
+1 Creo que los tipos de contenido genéricos, como en la respuesta aceptada, son mejores para los modelos "conectables" en los que no se conoce nada sobre las relaciones. Su respuesta es mejor para situaciones donde tiene control y conocimiento completo de todos los modelos. Mejor significa que es más fácil escribir consultas y menos visitas en la base de datos. –
Olvidó "null = True" en los argumentos de campo fundido y artículo FK porque cada instancia de Fave no establecerá el único campo FK en Ninguno que corresponde a la configuración en el campo type_of_fave – Geradeausanwalt