Django Djangoprivacymgmt包不显示html

2024-05-29 03:55:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要帮助将this package实现到这个django project

查看页面源代码时,我看到应用程序的HTML是从render标记加载的。但是在实际页面上,我没有看到任何从这些呈现标记输出的HTML

有人能总结一套一步一步的说明来让这个软件包工作吗?提供的说明有时会令人困惑

我没有执行以下操作,也不确定如何执行这些部分:

1)在divio.com上或通过pypi安装该插件(最好不要安装它,因为它似乎要花钱——除非有办法免费使用)

2)更新模板/django_隐私管理,以反映前端工具链的情况(不确定在我的项目中将这些文件放在哪里)

3)然后检查您的网站正在使用哪种跟踪项目(在模板中或通过Google Tag Manager或任何可以想象的其他方式),并将它们添加到Django Admin界面的“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>

Tags: install项目django标记comhtmlcontextpip3
1条回答
网友
1楼 · 发布于 2024-05-29 03:55:29

两周前,我刚开始使用django,无意中发现了django隐私管理软件包。我也想在我的项目中使用它,但在开始时遇到了一些麻烦。这就是为什么我认为我可以在这里帮助你。 我看了一下你的项目,检查了它并成功地集成了这个包

我执行了以下步骤:

  1. 已使用pip pip install django-privacy-mgmt安装程序包
  2. 像您那样添加已安装的应用程序
INSTALLED_APPS = [
...
    'django.contrib.sites',
    'sekizai',
    'django_privacy_mgmt',
    'parler',
...
]
  1. django.contrib.messages.context_processors.messages到上下文处理器

  2. base.html的./courses/templates中添加了隐私定义

{% 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>
  1. python manage.py migration

  2. python manage.py runserver任何用户登录都会在导航栏中显示链接,如果您单击它,弹出窗口就会出现

说明:

在第一步中,我们安装软件包。您不需要安装django-parlerdjango-sekizai,它们是django-privacy-mgmt的依赖项,将由pip自动安装 成功安装包后,我们可以使用位于./courses/templates/courses/base.html中的base.html文件中的标记。首先,为了能够使用django隐私管理包中的标记,我们包含了load privacy。之后,我们{}。文档中没有描述这一点,但有必要为'js'和'css'添加render_block标记,包使用这些标记将javascript和css添加到base.html中。软件包的创建者计划将来删除它,请查看here。你需要把render_privacy_settings_modal_link放在你想为用户显示链接的地方,也许页脚是最好的地方。我把它放在你的导航栏里了。 我根据documentationrender_privacy_apirender_privacy_bannerrender_privacy_settings_modal添加到了base.html中。请注意,横幅是可选的。 在步骤5中,我迁移了SQL脚本,它将创建创建TrackingItem所需的表。 启动本地服务器并与任何用户登录后,您应该能够在导航中看到“隐私设置”链接

1) install the add-on on divio.com or via pypi

我没有用它。如上所述here安装pip工程

2) update your templates/django_privacy_mgmt to reflect

包的创建者的意思是,您可以覆盖他的模板。他有一个模板,这些是应用程序中包含的渲染标记。我需要在我的项目中这样做,因为我使用Django 3,不再支持静态文件。你不必担心,在你的项目中一切都很好,但是如果你想改变横幅、链接或弹出窗口的布局,你必须覆盖模板。您可以通过在./courses/templates中创建一个名为django_privacy_mgmt的文件夹,并创建名为here的HTML文件来实现这一点。从存储库复制内容并根据需要进行调整

3) + 4) Then check what kind of tracking items your website is using

如果您使用localhost:8000/admin登录到管理区域,您应该会看到model TrackingItem,您可以在其中为django隐私管理创建项目。 为了根据用户的隐私设置排除脚本,您必须遵循说明here。正如您在示例中看到的,如果用户拒绝cookie设置中的统计信息,它不会加载googletagamanager

希望这有帮助

相关问题 更多 >

    热门问题