From 4ab38758eb25be9419d62eb385ad2b03975d164c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Tue, 14 Nov 2017 23:45:53 +0100 Subject: [PATCH] defer MapUpdate.changed_geometries by default --- src/c3nav/mapdata/models/update.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/c3nav/mapdata/models/update.py b/src/c3nav/mapdata/models/update.py index f6b1e126..8e6b6ac0 100644 --- a/src/c3nav/mapdata/models/update.py +++ b/src/c3nav/mapdata/models/update.py @@ -11,6 +11,11 @@ from django.utils.translation import ugettext_lazy as _ from c3nav.mapdata.tasks import process_map_updates +class MapUpdateManager(models.Manager): + def get_queryset(self, *args, **kwargs): + return super().get_queryset(*args, **kwargs).defer('changed_geometries') + + class MapUpdate(models.Model): """ A map update. created whenever mapdata is changed. @@ -21,11 +26,14 @@ class MapUpdate(models.Model): processed = models.BooleanField(default=False) changed_geometries = models.BinaryField(null=True) + objects = MapUpdateManager() + class Meta: verbose_name = _('Map update') verbose_name_plural = _('Map updates') default_related_name = 'mapupdates' get_latest_by = 'datetime' + base_manager_name = 'objects' def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) @@ -82,7 +90,7 @@ class MapUpdate(models.Model): @classmethod def process_updates(cls): with transaction.atomic(): - new_updates = tuple(cls.objects.filter(processed=False).select_for_update(nowait=True)) + new_updates = tuple(cls.objects.filter(processed=False).defer(None).select_for_update(nowait=True)) if not new_updates: return ()