Каков наилучший способ сделать функцию счетчика на моих view.py?Django View Counter
Я нашел выражения F() в документации Django, но как заставить его работать или лучше понимать?
Спасибо заранее
def watch_video(request, slug):
video = get_object_or_404(Video, slug=slug)
template = "single_video.html"
#if this function will run , + 1 in Video.views ?
return render(request,template,{"video":video})
моя модель:
class Video(models.Model):
video_id = models.CharField(max_length=150)
title = models.CharField(max_length=150)
slug = AutoSlugField(populate_from="title")
description = models.TextField(blank=True)
views = models.PositiveIntegerField(default=0)
likes = models.PositiveIntegerField(default=0)
category = models.ForeignKey("VideoCategory")
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
tags = models.ManyToManyField("Tag")
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse("watch", kwargs={"slug" : self.slug})
Вы не просто хотите увеличивать счетчик при каждом посещении с того же IP-адреса. Вам необходимо отслеживать IP, чтобы при повторном посещении пользователем одного и того же IP-адреса счетчик не должен увеличивать. Есть некоторые пакеты, такие как [django-hitcount] (https://github.com/thornomad/django-hitcount/) и [django-посещения] (https://bitbucket.org/jespino/django-visits) –