Serve() вызывается дважды каждый раз, когда я перезагружаю страницу блога в wagtail

Я использую wagtail для создания сайта-блога. Для подсчета посещений каждого блога я переопределяю get_context() и serve() для установки cookie. Коды следующие:

def get_context(self, request):

        authorname=self.author.get_fullname_or_username()
        data = count_visits(request, self)

        context = super().get_context(request)
        
        context['client_ip'] = data['client_ip']
        context['location'] = data['location']
        context['total_hits'] = data['total_hits']
        context['total_visitors'] =data['total_vistors']
        context['cookie'] = data['cookie']
        context['author']=authorname
        return context
    
    def serve(self, request):
        context = self.get_context(request)
        template = self.get_template(request)
        
        response = render(request, template, context)
        response.set_cookie(context['cookie'], 'true', max_age=3000)
        return response

А функция count_visits выглядит следующим образом:

def count_visits(request, obj):       
    data={}
    ct = ContentType.objects.get_for_model(obj)
    key = "%s_%s_read" % (ct.model, obj.pk)
    count_nums, created = VisitNumber.objects.get_or_create(id=1)
    if not request.COOKIES.get(key):      
        blog_visit_count, created =BlogVisitNumber.objects.get_or_create(content_type=ct, object_id=obj.pk)
        count_nums.count += 1
        count_nums.save()
        blog_visit_count.count += 1
        blog_visit_count.save()

Проблема, с которой я столкнулся, заключается в том, что когда я перезагружаю страницу блога, serve() был загружен дважды. В первый раз запрос был с информацией о cookie. Но во второй раз куки запроса были {}, из-за чего подсчет посещений работает некорректно. Я не понимаю, почему serve() вызывается дважды каждый раз, когда я перезагружаю страницу.

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