diff options
| -rw-r--r-- | ishtar_common/views_item.py | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index ada8420be..ad256915c 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -2925,7 +2925,7 @@ def get_item( cache_search = search_vector or pinned_search or any( 1 for k in request_items if k.startswith("columns[")) - q_cached_count = None + items_nb = 0 if cache_search: q_cached_count_attrs = { "content_type": ContentType.objects.get_for_model(model), @@ -2936,15 +2936,17 @@ def get_item( q_cached_count_attrs["ishtar_user_id"] = ishtaruser.user_ptr_id SearchCache = apps.get_model("ishtar_common", "SearchCache") q_cached_count = SearchCache.objects.filter(**q_cached_count_attrs) - if cache_search and q_cached_count.exists(): - items_nb = q_cached_count.all()[0].count - else: + if q_cached_count.exists(): + items_nb = q_cached_count.all()[0].count + if items_nb < 1000: + # do not use cache if search is below 1000 + # the search can made again try: q = items.values(*count_values) items_nb = q.count() or 0 except ProgrammingError: items_nb = 0 - if cache_search: + if cache_search and items_nb >= 1000: q_cached_count_attrs.pop("updated__gt") q_cached_count_attrs["count"] = items_nb SearchCache.objects.create(**q_cached_count_attrs) |
