Я только начал использовать django две недели go и наткнулся на пакет django -privacy-mgmt. Я хотел использовать его и в своем проекте, и у меня были некоторые проблемы в начале. Вот почему я думаю, что смогу помочь тебе здесь. Я посмотрел ваш проект, проверил его и успешно интегрировал пакет.
Я сделал следующие шаги:
- Установил пакет с помощью pip
pip install django-privacy-mgmt
- Добавить установленные приложения, как вы сделали
INSTALLED_APPS = [
...
'django.contrib.sites',
'sekizai',
'django_privacy_mgmt',
'parler',
...
]
И django.contrib.messages.context_processors.messages
для контекстных процессоров
Добавлены определения конфиденциальности для ваших base.html
in ./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>
python manage.py migration
python manage.py runserver
и логин с любым пользователем покажет ссылку в навигации, при нажатии на нее появится всплывающее окно
Пояснения:
На первом этапе мы устанавливаем пакет. Вам не нужно устанавливать django-parler
и django-sekizai
, они являются зависимостями django-privacy-mgmt
и будут автоматически установлены pip. После успешной установки пакета мы можем использовать теги в вашей базе. html файл, который находится в ./courses/templates/courses/base.html. Во-первых, мы включаем load privacy
, чтобы иметь возможность использовать теги из пакета django -privacy-mgmt. После этого мы load sekizai_tags
. Это не описано в документации, но необходимо добавить теги render_block
для 'js' и 'css', которые используются пакетом для добавления javascript и css к вашей базе. . html. Создатель пакета планирует удалить его в будущем, пожалуйста, посмотрите здесь . Вам нужно поставить render_privacy_settings_modal_link
там, где вы хотите показать ссылку для пользователя, вероятно, нижний колонтитул - лучшее место. Я положил это в вашу навигацию. Я добавил render_privacy_api
, render_privacy_banner
и render_privacy_settings_modal
в соответствии с документацией в ваш base.html
. Обратите внимание, что баннер не является обязательным. На шаге 5 я переношу сценарии SQL, которые создадут таблицы, необходимые для создания элемента TrackingItem. После того, как вы запустили локальный сервер и вошли в систему с любым пользователем, вы должны увидеть ссылку «настройки конфиденциальности» в навигации.
1) установить надстройку на divio .com или через pypi
Я не использовал его. Как описано здесь установка с помощью pip работает
2) обновите ваши шаблоны / django_privacy_mgmt, чтобы отразить
Что подразумевается под создателем пакета что вы можете переопределить его шаблоны. У него есть для шаблонов, это те теги рендеринга, которые вы включаете в свое приложение. Мне нужно было сделать это в моем проекте, потому что я использую Django 3, а статические файлы больше не поддерживаются. Вам не нужно беспокоиться об этом, все отлично работает в вашем проекте, но если вы хотите изменить макет баннера, или ссылку, или всплывающее окно, вам нужно переопределить шаблон. Вы можете сделать это, создав папку с именем django_privacy_mgmt
в ваших ./courses/templates и создав * файлы 1094 * с именами, которые вы найдете здесь . Скопируйте содержимое из репозитория и настройте его в соответствии со своими потребностями.
3) + 4) Затем проверьте, какие элементы отслеживания использует ваш сайт
Если вы регистрируетесь в административную область с помощью localhost: 8000 / admin вы увидите модель TrackingItem, где вы можете создавать элементы для django -privacy-mgmt. Чтобы исключить сценарии в зависимости от настроек конфиденциальности пользователя, вы должны следовать объяснению здесь . Как видно из примера, он не загружает googletagamanager, если пользователь отклонил статистику в настройках cook ie.
Надеюсь, это поможет!