【发布时间】:2015-03-03 13:13:35
【问题描述】:
在我的 views.py 中创建视图计数器功能的最佳方法是什么?
我确实在 Django 文档中找到了 F() 表达式,但是如何使它工作或有更好的主意?
提前谢谢你
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 和django-visits