【问题标题】:page view count for django detail viewdjango 详细视图的页面查看次数
【发布时间】:2020-09-08 13:56:30
【问题描述】:

我想获取详情页的浏览量,我做到了,但是我有一个问题,每次刷新页面,浏览量都会增加。 我希望每个用户的视图只增加一次,而不是每次页面刷新时增加访问次数。

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(...) 

【问题讨论】:

  • 考虑从产品中向用户添加另一个模型或多对多字段。计算用户数就是您的页面浏览量。

标签: django django-models django-rest-framework django-views


【解决方案1】:

您创建了一个 ManyToMany 字段。当用户查看页面时,您将视图添加到用户的 ManyToMany 并增加视图。如果这种关系已经存在(意味着他们之前访问过该页面),则您不计入浏览量,因此会创建一个独特的浏览量。

注意:我很肯定有更好的解决方案,但这是一个开始!

【讨论】:

    猜你喜欢
    • 2019-02-24
    • 2022-01-22
    • 2021-07-04
    • 2020-10-30
    • 1970-01-01
    • 2017-04-10
    • 2013-02-11
    • 2015-02-13
    • 1970-01-01
    相关资源
    最近更新 更多