Метод get_context_data вызывается дважды. Теги шаблонов в django

к базе данных обращаются дважды, один раз в views, второй раз в templatetags. Я пытался сделать mixin, он все равно обращается дважды. как убрать второе обращение к базе данных?

ПРОСМОТРОВ

class MoneyHomeView(CacheQuerysetMixin, RelatedMixin, ListView):
    model = Money
    paginate_by = 10
    template_name = 'money/money_list.html'
    context_object_name = 'money'
​
    def get_context_data(self, *, object_list=None, **kwargs):
        context = super().get_context_data(**kwargs)
        if self._check_cached() == False:
            getQ = self._caching_queryset(self.getMoneyQuery())
        else:
            getQ = self._get_cached_queryset()
        list_orders = getQ
        paginator = Paginator(list_orders, self.paginate_by)
        page = self.request.GET.get('page')
        return context
​
    def getMoneyQuery(self):
        return Money.objects.all()

МИКСИН

class CacheQuerysetMixin:
    _cached_queryset: list = None
​
    def _caching_queryset(self, queryset):
        if not self._cached_queryset:
            self._cached_queryset = queryset
​
        return self._cached_queryset
​
    def _check_cached(self):
        if not self._cached_queryset:
            return False
        return True
​
    def _get_cached_queryset(self):
        if not self._cached_queryset:
            self._cached_queryset = queryset
        return self._cached_queryset

templatetag

@register.simple_tag(takes_context=True)
def url_replace(context, **kwargs):
    query = context['request'].GET.copy()
    for kwarg in kwargs:
        try:
            query.pop(kwarg)
        except KeyError:
            pass
    query.update(kwargs)
    return mark_safe(query.urlencode())

Как решить эту проблему? Я думаю, мне нужно изменить templatetags

Вернуться на верх