forked from 0x2620/pandora
more clip query speedups
This commit is contained in:
parent
5a06948b97
commit
8bb18af181
3 changed files with 8 additions and 5 deletions
|
@ -32,8 +32,8 @@ def create_or_update_layer(data):
|
|||
|
||||
class Layer(models.Model):
|
||||
|
||||
class Meta:
|
||||
ordering = ('position', )
|
||||
#class Meta:
|
||||
# ordering = ('position', )
|
||||
|
||||
enabled = models.BooleanField(default=True)
|
||||
|
||||
|
|
|
@ -89,7 +89,6 @@ class Clip(models.Model):
|
|||
for layer in filter(lambda l: l in keys, public_layers):
|
||||
j[layer] = [a.json(keys=['id', 'value'])
|
||||
for a in self.annotations.filter(layer__name=layer)]
|
||||
|
||||
for key in keys:
|
||||
if key not in clip_keys and key not in j:
|
||||
value = self.item.get(key)
|
||||
|
|
|
@ -75,12 +75,15 @@ def findClips(request):
|
|||
response = json_response()
|
||||
|
||||
query = parse_query(data, request.user)
|
||||
qs = order_query(query['qs'], query['sort'])
|
||||
qs = query['qs']
|
||||
if 'keys' in data:
|
||||
qs = order_query(qs, query['sort'])
|
||||
qs = qs[query['range'][0]:query['range'][1]]
|
||||
qs = qs.select_related()
|
||||
qs = qs.select_related('item__sort')
|
||||
#qs = qs.prefetch_related('annotations')
|
||||
response['data']['items'] = [p.json(keys=data['keys']) for p in qs]
|
||||
elif 'position' in query:
|
||||
qs = order_query(qs, query['sort'])
|
||||
ids = [i.public_id for i in qs]
|
||||
data['conditions'] = data['conditions'] + {
|
||||
'value': data['position'],
|
||||
|
@ -92,6 +95,7 @@ def findClips(request):
|
|||
if qs.count() > 0:
|
||||
response['data']['position'] = utils.get_positions(ids, [qs[0].itemId])[0]
|
||||
elif 'positions' in data:
|
||||
qs = order_query(qs, query['sort'])
|
||||
ids = [i.public_id for i in qs]
|
||||
response['data']['positions'] = utils.get_positions(ids, data['positions'])
|
||||
else:
|
||||
|
|
Loading…
Reference in a new issue