Django - django -privacy-mgmt пакет не отображается html - PullRequest
0 голосов
/ 18 января 2020

Мне нужна помощь для внедрения этого пакета в этот django проект :

При просмотре источника страницы я вижу приложение HTML, загруженное из визуализировать теги. Но на реальной странице я не вижу никаких выводимых HTML из этих тегов рендеринга.

Может кто-нибудь, пожалуйста, обобщите пошаговый набор инструкций, чтобы этот пакет работал? Предоставленные инструкции могут иногда сбивать с толку.

Я не делал следующее и не уверен, как сделать эти части:

1) установить надстройку на divio.com или через pypi (лучше не устанавливать это, так как кажется, стоит денег - если только нет способа использовать его бесплатно)

2) обновите ваши шаблоны / django_privacy_mgmt, чтобы отразить вашу ситуацию с цепочкой инструментов внешнего интерфейса (не уверен, где в моем проекте поместить эти файлы.

3) Затем проверьте, какие элементы отслеживания использует ваш веб-сайт (либо в шаблонах, либо через Google Tag Manager, либо любым другим способом), и добавьте их в раздел «Django Privacy Mgmt» * 1027. * Интерфейс администратора для списка «Отслеживание предметов». Это необходимо для того, чтобы мы могли показать пользователю список отслеживаемых элементов в модале «Настройки конфиденциальности».

4) Затем реализовать условную логику c, которая включает или отключает элементы отслеживания, которые вы указали в предыдущий шаг (см. следующую главу).

Вот шаги, которые я выполнил:

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>

1 Ответ

0 голосов
/ 02 апреля 2020

Я только начал использовать django две недели go и наткнулся на пакет django -privacy-mgmt. Я хотел использовать его и в своем проекте, и у меня были некоторые проблемы в начале. Вот почему я думаю, что смогу помочь тебе здесь. Я посмотрел ваш проект, проверил его и успешно интегрировал пакет.

Я сделал следующие шаги:

  1. Установил пакет с помощью pip pip install django-privacy-mgmt
  2. Добавить установленные приложения, как вы сделали
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.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...