我如何修改django-tracking2,以便用户可以选择退出跟踪

问题描述 投票:0回答:1

我正在建立一个网站,需要使用django-tracking2进行分析。一切正常,但我希望允许用户选择退出,但我还没有看到任何选择。我本以为修改中间件部分可能会起作用,但老实说,由于我以前没有编写过中间件,因此我不知道该怎么做。

我尝试编写脚本来检查名为no_track的cookie,如果未设置它,则将其设置为false以进行默认跟踪,如果它们拒绝,它将no_track设置为True,但我不知道在哪里来实现它(除了中间件,当我尝试服务器告诉我与管理员联系时)。我当时在想,也许我可以使用信号来阻止用户被跟踪,但这会减慢网页的速度,因为它必须处理防止在每个页面上出现新的Visitor实例(因为它可能会继续制作新的实例,因为看起来好像就像一个新用户)。我可以对Visitor类进行子类化并修改__init__以检查cookie并允许它保存还是不保存。

感谢您提供任何答案,如果我找到解决方案,我将编辑帖子或发布并接受答案,以防万一其他人需要此答案。

django django-models analytics django-middleware django-packages
1个回答
0
投票

我在工具文件中创建了一个函数(保存了整个项目中使用的所有函数,使我的生活更轻松),以获取并设置会话密钥。在VisitorTrackingMiddleware中,我使用了_should_track()函数,并在工具文件中使用了_should_track()函数,以查找会话密钥的检查(在check_session()检查是否已安装会话之后,在所有其他检查之前),如果它不存在,则该函数将使用默认值True创建它(跟踪用户,直到他们接受或拒绝),然后返回HttpResponse(尝试使用cookie方法后遗留下来的)。

[当我使用cookie方法时,firefox控制台说cookie将过期,所以我刚切换到会话,另一个原因是在其上运行了django-tracking2。

它似乎工作得很好,并且对加载时间没有很大的影响,每次发出请求时,该函数都会运行,并且我的调试会告诉我是否正在跟踪我,并且所有按钮都可以通过AJAX正常工作。我想运行一些测试以查看这是否确实有效,如果可以,也许我会向django-tracking2提交拉取请求,以防万一其他人想要使用它。

这的一大优势在于,您可以允许用户根据需要改变主意,或者可以在用户注册时根据他们是否接受来重新提示。通过check_session()的设置方式,我也可以在模板标签和类方法中使用它。

© www.soinside.com 2019 - 2024. All rights reserved.