我发现遵守欧盟cookie法所需的这些cookie通知非常烦人。我正在处理的网页在大多数页面上都没有使用cookie(仅对某些页面使用CSRF保护)。因此,我的想法是仅在用户遇到实际包含cookie的页面时显示通知。
我在基础模板中尝试了以下代码,并启用了django.core.context_processors.request
模板上下文处理器:
{% if request.COOKIES %}
<!-- Begin Cookie Consent plugin by Silktide - http://silktide.com/cookieconsent -->
<script type="text/javascript">
...
</script>
<script type="text/javascript" src="//s3.amazonaws.com/cc.silktide.com/cookieconsent.latest.min.js"></script>
<!-- End Cookie Consent plugin -->
{% endif %}
它有点工作,但它没有在设置的同一页面上显示cookie。相反,它在用户设置的第一页上显示它(即第一次请求对象包含cookie)。
实际设置cookie时是否可以让它显示cookie通知?
答案 0 :(得分:1)
Cookie实际上是由响应对象设置的,而不是由请求设置的。请求只会接收已在客户端浏览器中设置的cookie。
更重要的是,有些cookie是由parse_response
方法中的中间件类设置的。处理视图后会触发该方法,因此无法在模板中检索该方法。它将在parse_response
中由会话和csrf mddlewares分配。
答案 1 :(得分:0)
不要忘记将Cookie同意src更新为//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/1.0.9/cookieconsent.min.js