我需要在此django project中实现this package的帮助
在查看页面源代码时,我看到应用程序的HTML是从render标记加载的。但是在实际的页面上,我看不到任何从这些render标记输出的HTML。
有没有人可以一步一步地总结一下让这个包工作的说明?所提供的说明有时可能会令人困惑。
我没有执行以下操作,并且不确定如何执行这些部分:
1)在divio.com上或通过pypi安装插件(我不想安装这个插件,因为它似乎很花钱--除非有办法免费使用它)
2)更新您的模板/django_privacy_mgmt以反映您的前端工具链情况(不确定在我的项目中将这些文件放在哪里。
3)然后检查您的网站正在使用什么类型的跟踪项目(在模板中,或者通过Google Tag Manager或以任何可以想到的其他方式),并将它们添加到Django管理界面的"Django隐私管理“部分中的”跟踪项目“列表中。这是必要的,这样我们就可以在“隐私设置”模式中向用户显示跟踪项目的列表。
4)然后实现条件逻辑,启用或禁用您在上一步中标识的跟踪项(参见下一章)。
以下是我遵循的步骤:
pip3 install django-privacy-mgmt
pip3 install django-parler
pip3 install django-sekizai
python3 manage.py migrate
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,"templates")],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'sekizai.context_processors.sekizai',
],
},
},
]
SITE_ID = 1
INSTALLED_APPS = [
'django.contrib.sites',
'sekizai',
'django_privacy_mgmt',
'parler',
]
{% load privacy %}
<!DOCTYPE html>
<html lang="en">
<head>
{% load static %}
{% render_privacy_api %}
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<body>
{% render_privacy_banner %}
{% render_privacy_settings_modal %}
{% render_privacy_settings_modal_link %}
</body>
发布于 2020-04-02 18:41:18
我两周前刚开始使用django,偶然发现了django-privacy-mgmt包。我也想在我的项目中使用它,但在开始的时候遇到了一些麻烦。这就是为什么我想我也许能帮到你。我看过你的项目,签出并成功集成了包。
我完成了以下步骤:
与一样,
pip install django-privacy-mgmt
INSTALLED_APPS = [
...
'django.contrib.sites',
'sekizai',
'django_privacy_mgmt',
'parler',
...
]
context-processors
中base.html
的隐私定义
{% load privacy %}
{% load sekizai_tags %}
<!DOCTYPE html>
<html>
<head>
<title>Django Video Membership</title>
{% render_privacy_api %}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" ...
{% render_block 'css' %}
</head>
<body>
{% include 'courses/messages.html' %}
<div class="container">
<ol class='breadcrumb'>
<li><a href="{% url 'memberships:profile' %}">Profile</a></li>
{% block post_detail_link %}
{% endblock %}
{% if not request.user.is_authenticated %}
<li class='pull-right'><a href='/register'>Register</a></li>
<li class='pull-right'><a href='/login'>Login</a></li>
{% else %}
<li class='pull-right'><a href='/memberships'>Memberships</a></li>
{% endif %}
{% render_privacy_settings_modal_link %}
</ol>
</div>
{% block content %}
{% endblock content %}
<script
src="https://code.jquery.com/jquery-3.3.1.js" ...
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" ...
{% render_privacy_banner %}
{% render_privacy_settings_modal %}
{% render_block "js" %}
</body>
</html>
使用
python manage.py migration
python manage.py runserver
和任何用户登录都会在导航中显示该链接,如果您单击它,弹出窗口将显示为解释:
在第一步中,我们安装软件包。您不需要安装django-parler
和django-sekizai
,它们是django-privacy-mgmt
的依赖项,将由pip自动安装包成功安装后,我们可以使用您的base.html文件中的标记,该文件位于./courses/templates/courses/base.html。首先,我们包含load privacy
以便能够使用django-privacy-mgmt包中的标记。然后,我们load sekizai_tags
。文档中没有对此进行描述,但是有必要添加'js‘和' css’的render_block
标记,包使用这些标记将javascript和css添加到您的base.html中。该包的创建者计划在将来将其移除,请查看here。您需要将render_privacy_settings_modal_link
放在想要为用户显示链接的位置,页脚可能是最好的位置。我把它放到你的导航里了。我根据documentation将render_privacy_api
、render_privacy_banner
和render_privacy_settings_modal
添加到您的base.html
中。请注意,标语是可选的。在第5步中,我迁移了SQL脚本,这将创建创建TrackingItem所需的表。在启动本地服务器并使用任何用户登录后,您应该能够在导航中看到‘privacy-setting’-链接。
1)在divio.com上或通过pypi安装附加组件
我没有用过它。如上所述,使用pip works安装here
2)更新您的模板/django_privacy_mgmt以反映
包的创建者的意思是您可以覆盖他的模板。他有模板,这些是你在你的应用程序中包含的渲染标签。我需要在我的项目中这样做,因为我使用的是Django 3,不再支持静态文件。你不需要担心这一点,在你的项目中一切工作正常,但如果你想改变横幅的布局,或者链接或弹出窗口,那么你必须覆盖模板。您可以通过在./courses/templates中创建一个名为django_privacy_mgmt
的文件夹来实现这一点,并使用您找到的here的名称创建HTML文件。从存储库中复制内容并根据需要进行调整。
3) + 4)然后检查您的网站正在使用哪种跟踪项目
如果您使用localhost:8000/admin登录到管理区域,您应该看到模型TrackingItem,您可以在其中为django-privacy-mgmt创建项目。为了根据用户的隐私设置排除脚本,您必须遵循here的说明。正如您在示例中看到的,如果用户拒绝cookie设置中的统计信息,则不会加载googletagamanager。
希望这能有所帮助!
https://stackoverflow.com/questions/59796610
复制相似问题