@xframe_options_exempt не работает для представления/шаблона Django, который отображает iFrame?

Я отображаю iFrame на своем шаблоне, содержимое которого взято из локального .html, который я загрузил в качестве медиафайла.

В настройках X_FRAME_OPTIONS = 'SAMEORIGIN' у меня установлено разрешение на отображение содержимого, однако когда я запускаю проверку --check deploy, я получаю следующее сообщение:

WARNINGS:
?: (security.W019) You have 'django.middleware.clickjacking.XFrameOptionsMiddleware' in your 
MIDDLEWARE, but X_FRAME_OPTIONS is not set to 'DENY'. Unless there is a good reason for your site
to serve other parts of itself in a frame, you should change it to 'DENY'.

Кажется, что я должен держать это значение на DENY, когда я иду на производство, однако, делая это, мой iFrame "не может подключиться" для отображения содержимого.

Я прочитал документацию здесь, в которой говорится, что вы можете установить исключения на уровне представления, если вы установите значение DENY, однако у меня это не работает.

В функции view я пробовал использовать декораторы @xframe_options_sameorigin и @xframe_options_exempt, например:

# @xframe_options_sameorigin # Doesn't work
# @xframe_options_exempt # Also doesn't work
# Setting X_FRAME_OPTIONS = 'SAMEORIGIN'
# and use @xframe_options_deny also doesn't work
def work_detail(request, pk):
    work = Work.objects.get(pk=pk)
    context = {
        'work': work
    }
    return render(request, 'work_detail.html', context)

...но все они по-прежнему не подключают iFrame. Что еще я могу попробовать?

Это не решает проблему, но в качестве обходного пути, вместо использования iframe, я обнаружил это решение, которое сработало для меня в template.html файле:

  1. <div w3-include-html="{{ work.html.url }}"></div>
  2. Определите javascript поверх шаблона, но ниже {% block page_content %}
  3. .
  4. Добавить
<script>
    includeHTML();
</script>

в самый низ страницы, но до {% endblock %}. 4. Очистите кэш и перезапустите runserver. Я могу использовать это вместо iframe, но было бы неплохо узнать, почему исключения не работают так, как нужно?

Вернуться на верх