我有一個存儲電子郵件線程的django應用程序。當我從mbox解析原始電子郵件並將它們插入到數據庫中時,我會包含電子郵件標題參數'message-id'和'in-reply-to'。 message-id是標識消息的唯一字符串,in-reply-to標識給定消息響應的消息。使用郵件標題信息在django中排序電子郵件線程
這裏是我的模型的消息部分:
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和谷歌它看起來像我應該使用類似django-treebeard或django-mptt的庫來做到這一點。當我查看這兩種解決方案的文檔時,看起來大多數模型都使用外鍵關係,這使我感到困惑。
鑑於上面的示例模型,如何將django-treebeard或django-mptt實現到我的應用程序中?這可能使用mesg_id和in_reply_to字段嗎?
請記住,有時您可能會在收到origianl帖子之前收到回覆,並將orig_in_reply_to作爲CharField保存爲@ajt,這對於使用「Message」可能以任何順序匹配郵件是一個好主意。 objects.filter(orig_in_reply_to = new_message.msg_id)'。 – Udi 2011-06-13 07:16:28