メールスレッドを保存するdjangoアプリがあります。mboxから元のメールを解析してデータベースに挿入するときは、メールヘッダーパラメーター「message-id」と「in-reply-to」を含めます。message-idはメッセージを識別する一意の文字列であり、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に似たスレッド形式でメールの会話を表示できるようにすることです。メールヘッダーからのmessage-id(モデルではmesg_id)とin-reply-to(モデルではin_reply_to)を使用して、メールを追跡し、スレッド化することを計画していました。
SOとgoogleを確認した後、これを行うにはdjango-treebeardやdjango-mpttなどのライブラリを使用する必要があるようです。これら2つのソリューションのいずれかのドキュメントを確認すると、ほとんどのモデルが外部キーの関係を使用しているように見え、これで混乱します。
上記のモデルの例を考えると、アプリにdjango-treebeardまたはdjango-mpttを実装するにはどうすればよいですか?これは、mesg_idフィールドとin_reply_toフィールドを使用して可能ですか?