Итак, у меня есть модель, комментарий.В нем должны быть ссылки на все, что он комментирует.
Это может быть ответ на сообщение в блоге, или , это может быть ответ на другой комментарий и т. Д.
Так как мне сохранить эти отношения?Обычно я просто храню информацию с помощью ForeignKey.Но ForeignKey требует, чтобы он знал тип модели, на которую ссылается.
Есть ли что-то встроенное в Django, как ForeignKey, который может ссылаться на любой тип модели?Если нет, каковы наилучшие способы реализации таких отношений?
Вот что я подумал:
Я мог бы использовать целое число для хранения идентификатора объекта, на который он отвечаетto, а затем CharField для хранения типа, а затем я получу объект, выполнив что-то вроде globals()[type_name].objects.get(id=id)
, но я думаю, что у меня будут некоторые проблемы в будущем, если мне когда-нибудь понадобится выполнить что-нибудь сложное, например поиск, если я воспользуюсь этим методом.
Кроме того, я мог бы создать отдельный класс Comment для каждого объекта, на который он мог бы реагировать (конечно, автоматически).Но опять же, это вызывает ограничения.Я больше не мог легко делать такие вещи, как Comment.objects.get(id=5)
Или у моего класса комментариев мог быть ForeignKey для каждой возможной вещи, на которую он мог отвечать, оставляя все, кроме 1, пустым для каждого комментария.По-прежнему похоже на решение ниже среднего.
Предложения?