我想获取详细信息页面的视图数,虽然确实可以,但是我有一个问题,每次刷新页面时,视图数都会增加。 我希望每个用户的视图只增加一次,而不是每次页面刷新时都增加访问次数。
model:
class Product(models.Model):
name = models.CharField(max_length=300)
create = models.DateTimeField(auto_now_add=True)
update = models.DateTimeField(auto_now=True)
slug = models.SlugField(unique=True)
information = models.TextField(blank=True, null=True)
views = models.IntegerField(null=True, blank=True, default=0)
view:
def details(request, id):
product_view = Product.objects.get(id=id)
product_view.views = product_view.views + 1
product_view.save()
return render(...)
答案 0 :(得分:0)
您创建一个ManyToMany字段。当用户查看页面时,可以将视图添加到用户的ManyToMany并增加视图。如果这种关系已经存在(意味着他们之前已经访问过该页面),则无需计算该视图,因此将创建一个唯一的视图。
注意:我很肯定那里有更好的解决方案,但这是一个开始!