Я хочу подключить один ForeignKey
к двум различным моделям.Как использовать динамический внешний ключ в Django?
Например:
У меня есть две модели, названные Casts
и Articles
, а третья модель, Faves
, для любой из их в избранное других моделей. Как я могу сделать динамик ForeignKey
?
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)
Возможно ли это?
+1 Я думаю, что общие типы контента, как и в принятом ответе, лучше подходят для «подключаемых» моделей, где вы ничего не знаете об отношениях. Ваш ответ лучше для ситуаций, когда у вас есть контроль и полное знание всех моделей. Лучше означает, что проще писать запросы и меньше ударов по базе данных. –
Вы забыли «null = True» в аргументах поля FK и статьи FK, потому что каждый экземпляр Fave только не устанавливает одно поле FK в None, которое соответствует настройке в поле type_of_fave – Geradeausanwalt