From cf9708f73139a6856606dea64e0ebec8c066a5a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89lie=20Bouttier?= Date: Sat, 12 Aug 2017 14:30:23 +0200 Subject: [PATCH] trying to prefetch message authors --- mailing/models.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/mailing/models.py b/mailing/models.py index 837fbfa..d6fa09c 100644 --- a/mailing/models.py +++ b/mailing/models.py @@ -32,6 +32,14 @@ class MessageThread(models.Model): token = models.CharField(max_length=64, default=generate_message_token, unique=True) +class MessageManager(models.Manager): + def get_queyset(self): + qs = super().get_queryset() + # Does not work so well as prefetch_related is limited to one content type for generic foreign keys + qs = qs.prefetch_related('author') + return qs + + class Message(models.Model): created = models.DateTimeField(auto_now_add=True) thread = models.ForeignKey(MessageThread) @@ -42,6 +50,8 @@ class Message(models.Model): content = models.TextField(blank=True) token = models.CharField(max_length=64, default=generate_message_token, unique=True) + objects = MessageManager() + class Meta: ordering = ['created']