Счетчик Django DetailView увеличивается на 3 вместо 1

У меня есть веб-страница, где каждый просмотр подсчитывается и увеличивается на 3, а должен увеличиваться на 1

вот что у меня есть в файле views.py

from django.views.generic import ListView, DetailView
class MovieDetail(DetailView):
    model = Movie

    def get_object(self):
        object = super(MovieDetail, self).get_object()
        object.views_count += 1
        object.save()
        return object

    def get_context_data(self, **kwargs):
        context = super(MovieDetail, self).get_context_data(**kwargs)
        context['links'] = MovieLink.objects.filter(movie=self.get_object())
        context['related_movies'] = Movie.objects.filter(category=self.get_object().category)
        return context

html

<section class="movie">
                    <img src="{{object.image.url}}">
                    <ul>
                        <li>{{object}}</li>
                        <li>{{object.description}}</li>
                        <li><a href="genre.html">Adventure</a>, <a href="genre.html">Drama</a>, <a href="genre.html">Romance</a></li>
                        <li><a href="">{{object.cast}}</a></li>
                        <li><i class="fa fa-eye" id="eye"></i> {{object.views_count}}</li>
                    </ul>
                </section>

Планируется увеличивать на 1, но это не соответствует логике. Что здесь пошло не так?

get_object() может вызываться более одного раза при обработке представления. Вы можете, например, переместить этот код в метод render_to_response(). Также убедитесь, что поля базы данных увеличиваются с помощью выражений F() .

from django.db.models import F


class MovieDetail(DetailView):
    model = Movie

    def render_to_response(self, *args, **kwargs):
        self.object.views_count = F('views_count') + 1
        self.object.save()
        return super().render_to_response(*args, **kwargs)
Вернуться на верх