Как не вызывать два раза get_context_data в templatetags django?

Из-за takes_context=True в template tags, функция get_context_data вызывается два раза, соответственно два раза идет обращение к базе. Как сделать так, чтобы я мог использовать url_replace без двух обращений к базе?

views

class MoneyHomeView(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)
        getQ = self.getMoneyQuery()
        paginator = Paginator(getQ, self.paginate_by)
        page = self.request.GET.get('page')
        orders_page = paginator.page(page)          
        return context

    def getMoneyQuery(self):
        return Money.objects.all()

templatetags.py

@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())
Вернуться на верх