Ich stehe derzeit vor einem ernsten Problem. Ich benutze die Standard-Django-Admin-Schnittstelle inkl. Ändern Sie die Liste, um eines meiner Modelle anzuzeigen. Das Modell hat ein Feld, das einen Link enthält (z. B. in der Datenbank: http: // localhost: 8000/data/somefile.pdf '> link).Unlesbaren HTML-String in Django anzeigen Admin-Änderungsliste
Was ich jetzt will, ist, dass diese Zeichenfolge Unescapes gerendert und als Link angezeigt wird. Ich habe bereits versucht, die folgende in "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 %}
I used "| safe" auf dem Artikel, der ausgegeben wird. Außerdem habe ich "{% autoescape off%}" ausprobiert. Gleiches Ergebnis, der String wurde entfernt.
Sehen Sie eine andere Möglichkeit, um die Zeichenfolge als unscaped anzuzeigen?
Daniel, danke für den Hinweis. Ich musste im Modell eine Methode definieren, die den Link zurückgibt und diese Methode markiert.allow_tags = True. –
Weil der Link, Antwort immer noch korrekt ist. Aber 'allow_tags' ist in Django 1.9 veraltet. Verwenden Sie stattdessen 'format_html()': 'Veraltet seit Version 1.9: In älteren Versionen konnten Sie der Methode ein Attribut allow_tags hinzufügen, um automatisches Escaping zu verhindern. Dieses Attribut ist veraltet, da es sicherer ist, format_html(), format_html_join() oder mark_safe() stattdessen zu verwenden. https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_display – gabrieloliveira