В настоящее время у меня серьезная проблема. Я использую стандартный интерфейс администратора django, вкл. изменить список, чтобы отобразить одну из моих моделей. Модель имеет поле, которое включает ссылку (например, в базе данных: http: // localhost: 8000/data/somefile.pdf '> ссылка).Отобразить неэкранированную строку HTML в Django Список изменений администратора
Что я хочу, так это то, что эта строка отображается без экранирования и отображается как ссылка. Я уже пробовал следующее в «change_list_results.html»:
{% for result in results %}
<tr id="{{ result.1|adminfilter }}" class="{% cycle 'row1' 'row2' %}">
{% for item in result %}
{{ item|safe }}
{% endfor %}</tr>
{% endfor %}
Я «| безопасно» на фактический элемент, который выводится. Кроме того, я попробовал «{% autoescape off%}». Тот же результат, String удалось сбежать.
Вы видите какой-либо другой способ получения строки, не отображаемой?
Даниил, спасибо за подсказку. Мне пришлось определить метод в модели, который возвращает ссылку и помечен этим методом .allow_tags = True. –
Поскольку ссылка, ответ по-прежнему правильный. Но 'allow_tags' устарел в Django 1.9. Вместо этого используйте 'format_html()': 'Устаревший с версии 1.9: В более старых версиях вы можете добавить атрибут allow_tags для метода, чтобы предотвратить автоматическое экранирование. Этот атрибут устарел, так как безопаснее использовать format_html(), format_html_join() или mark_safe() вместо этого. '. https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_display – gabrieloliveira