diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-02-14 05:04:32 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-04-24 19:38:56 +0200 |
commit | b1a03e9a8fc888a53dac7784f8733477f04c0ee4 (patch) | |
tree | 20497d2f1da523e97f1d0d0d9da8c5ee7226f08c /ishtar_common/models.py | |
parent | 6fcc2f83307966d43d80fba3f8f159c6b870d1d5 (diff) | |
download | Ishtar-b1a03e9a8fc888a53dac7784f8733477f04c0ee4.tar.bz2 Ishtar-b1a03e9a8fc888a53dac7784f8733477f04c0ee4.zip |
Query optimization for JSON dynamic fields
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r-- | ishtar_common/models.py | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 962fc93a1..8c421bac7 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -1276,9 +1276,9 @@ class JsonData(models.Model, CachedGen): return value choices = set() splitted_key = key[len('data__'):].split('__') - for obj in cls.objects.filter( - data__has_key=key[len('data__'):]).values("data").all(): - value = obj['data'] + q = cls.objects.filter( + data__has_key=key[len('data__'):]).values_list('data', flat=True) + for value in q.all(): for k in splitted_key: value = value[k] choices.add(value) |