一般来说,我们如何知道用户是否是第一次访问该页面?从技术上讲,我们是否将访问页面的次数存储在模型中(我正在使用django),或者是否可以遵循其他一些模式来简化操作。

我只是在寻找实现此目的的设计。

最佳答案

我认为您必须为此创建自己的机制。

我将创建一个模型,该模型存储名为FirstVisit的每个URL和用户的首次访问。然后,如果用户在 View 中请求页面,则可以搜索FirstVisit中是否有当前用户和url的条目,并确定这是否是他的第一次。之后,如果他还没有访问过,则将条目存储到FirstVisit模型中,因为他只是要获取页面的内容。

我将尝试编写代码:

#models.py

class FirstVisit(models.Model):
    url = models.URLField()
    user = models.ForeignKey('auth.User')


#views.py

def my_view(request):
   if not FisrtVisit.objects.filter(user=request.user.id, url=request.path).exists():
      #he visits for the first time
      #your code...
      FisrtVisit(user=request.user, url=request.path).save()

您可以创建一个装饰器,并在其中放置此功能。然后将装饰器添加到要存储此信息的任何 View 中,并从装饰器向 View 传递一个标志参数,以确定用户是否第一次在该 View 中。

10-02 03:22
查看更多