Джанго: где находится mark_safe - PullRequest
0 голосов
/ 10 октября 2019

Функция mark_safe расположена в django.utils.safestring и, насколько я мог убедиться, всегда была. Почему примеры различных мест импорта в Интернете ( здесь и здесь )?

Более важно, почему эти другие операции импорта (django.utils.html и django.utils.text) работают? У меня есть некоторые в моем проекте, и пока версия Django не поднялась до 2.2, мой проект работал нормально.

Ответы [ 2 ]

1 голос
/ 10 октября 2019

Импорт работает, потому что функция импортируется в эти файлы.

, например, если вы импортируете mark_safe в ваш a.py, вы можете написать в b.py:

from .a import mark_safe

но лучший (и правильный) способ - импортировать функцию из django.utils.safesting, потому что она там определена.

Проблема в том, что она больше не будет работать, если функция больше не будет импортирована в эти файлы.

0 голосов
/ 10 октября 2019

задокументированное местоположение для mark_safe всегда было django.utils.safestring, поэтому его следует импортировать оттуда.

До этого изменения в Django 2.2, mark_safe было импортировано в django.utils.text. Таким образом, было возможно (но не очень хорошая идея) импортировать оттуда.

В текущей основной ветке , mark_safe импортируется в django.utils.html, так что это возможно, но нерекомендуется импортировать его оттуда.

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