improve performance a little bit by deferring geometry field in list
This commit is contained in:
parent
c24130f058
commit
857f0c0a09
2 changed files with 10 additions and 2 deletions
|
@ -248,7 +248,7 @@ def list_objects(request, model=None, level=None, space=None, explicit_edit=Fals
|
|||
if level is not None:
|
||||
reverse_kwargs['level'] = level
|
||||
level = get_object_or_404(Level, pk=level)
|
||||
queryset = queryset.filter(level=level)
|
||||
queryset = queryset.filter(level=level).defer('geometry')
|
||||
ctx.update({
|
||||
'back_url': reverse('editor.levels.detail', kwargs={'pk': level.pk}),
|
||||
'back_title': _('back to level'),
|
||||
|
@ -260,7 +260,7 @@ def list_objects(request, model=None, level=None, space=None, explicit_edit=Fals
|
|||
elif space is not None:
|
||||
reverse_kwargs['space'] = space
|
||||
space = get_object_or_404(Space.objects.select_related('level'), pk=space)
|
||||
queryset = queryset.filter(space=space)
|
||||
queryset = queryset.filter(space=space).defer('geometry')
|
||||
ctx.update({
|
||||
'level': space.level,
|
||||
'back_url': reverse('editor.spaces.detail', kwargs={'level': space.level.pk, 'pk': space.pk}),
|
||||
|
|
|
@ -199,6 +199,8 @@ class ModelInstanceWrapper(BaseWrapper):
|
|||
for field in self._obj._meta.get_fields():
|
||||
if not isinstance(field, Field):
|
||||
continue
|
||||
if field.name in self._obj.get_deferred_fields():
|
||||
continue
|
||||
if field.related_model is None:
|
||||
if field.primary_key:
|
||||
continue
|
||||
|
@ -415,6 +417,12 @@ class BaseQueryWrapper(BaseWrapper):
|
|||
return True
|
||||
return self._obj.exists()
|
||||
|
||||
def only(self, *fields):
|
||||
return self._wrap_queryset(self._obj.only(*fields))
|
||||
|
||||
def defer(self, *fields):
|
||||
return self._wrap_queryset(self._obj.defer(*fields))
|
||||
|
||||
@get_queryset
|
||||
def order_by(self, *args):
|
||||
"""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue