Полагаю, ваша модель выглядит следующим образом:
class Post(Model):
....
thread = ForeignKey(Thread)
post = ForeignKey('self')
posttime = DateTimeField(auto_now_add=True)
Вы получите все сообщения матери, принадлежащие теме ...
mothers = Post.objects.filter(thread=x, post__isnull=True)
post__isnull = True будет фильтровать сообщения, которые не ссылаются на себя, что означает, что они являются сообщениями, которые начинают тему ...
Затем получают сообщения, принадлежащие одной теме, и упорядочивают их ...
mother-post = mothers[0]
childs = Post.objects.filter(post=mother-post).order_by('posttime')
Но, вероятно, упорядочение по id (по умолчанию) также решает вашу проблему, поэтому вам может не потребоваться order_by .
ОБНОВЛЕНИЕ:
Да, вы можете это сделатьв одном запросе, например, для сообщения с id = 12323,
Posts.objects.filter(Q(pk=12323) | Q(post__id=12323))
Ссылка на документацию ... Это будет делать то, что вам нужно.