Я создаю сайт в стиле форума в Django и сталкиваюсь с некоторыми проблемами в моей структуре дизайна. Соответствующий код (от моей модели) выглядит следующим образом:Реализация подмножеств внешних ключей в Django
class Thread(models.Model):
post_count = models.IntegerField()
class Post(models.Model):
text = models.CharField(max_length=1000)
thread = models.ForeignKey(Thread)
вопрос, который я имею, что на мой взгляд, и шаблон, я перебирать тем и сообщений на дисплее. Тем не менее, у меня есть желание связать мой шаблон с тем, что сообщение может иметь определенные «специальные свойства» (например, создатель потока, последние сообщения, сообщения с наивысшей оценкой и т. Д.). Мне кажется разумным, что это будут свойства потока, а не сама почта (поскольку каждый поток будет иметь эти, но только переменное/пренебрежимое количество сообщений), но решения этой проблемы, которые мне удалось создать участвовали в двойном соединении сообщений с потоком (через другой ForeignKey (Thread) в определении Post) или путем размещения BooleanFields в определении Post, чтобы указать статус в этих списках. Я даже не уверен, что они будут работать или быть видимыми в шаблоне Django.
Мой вопрос: существует ли в Django чистый способ специализировать или группировать экземпляры модели, которые уже связаны с помощью сестра-элементов во внешнем ключе, то есть подмножать ForeignKey в отдельные (и, возможно, перекрывающиеся) группы? Или я подхожу к этой проблеме в непитоническом/неанджанго? Любое понимание или ссылки на документацию, которую я, возможно, упустил, будут оценены.