У меня есть приложение django, которое хранит темы электронной почты. Когда я анализирую исходные письма из mbox и вставляю их в базу данных, я включаю параметры заголовка письма «message-id» и «in-reply-to». Идентификатор сообщения - это уникальная строка, которая идентифицирует сообщение, а функция in-reply-to идентифицирует сообщение, на которое данное сообщение отвечает.
Вот часть сообщения моей модели:
class Message(models.Model):
subject = models.CharField(max_length=300, blank=True, null=True)
mesg_id = models.CharField(max_length=150, blank=True, null=True)
in_reply_to = models.CharField(max_length=150, blank=True, null=True)
orig_body = models.TextField(blank=True, null=True)
Цель состоит в том, чтобы иметь возможность показывать разговоры по электронной почте в многопоточном формате, аналогичном gmail. Я планировал просто использовать идентификатор сообщения (mesg_id в модели) и in-reply-to (in_reply_to в модели) из заголовков почты для отслеживания почты и выполнения потоков.
После просмотра SO и Google похоже, что для этого я должен использовать библиотеку вроде django-treebeard или django-mptt. Когда я просматриваю документацию для любого из этих двух решений, кажется, что большинство моделей используют отношения внешнего ключа, и это меня смущает.
Учитывая приведенный выше пример модели, как я могу внедрить в свое приложение django-treebeard или django-mptt? Возможно ли это с помощью полей mesg_id и in_reply_to?