2017-09-08 2 views
0

Ich aktualisiere mein altes Projekt auf die neuesten Versionen von Python/Django und habe Probleme mit benutzerdefinierten Vorlagen-Tags.Verhindern AutoScaping benutzerdefinierte Vorlage Tags in Django

Template Tagdefinition:

from django import template 
register = template.Library() 

def my_tag(*args) -> str: 
    """ returns html code """ 

register.simple_tag(lambda *x: my_tag("hello world", *x), name='my_tag') 

Beispiel Tag-Nutzung:

{% my_tag "this no longer works, this autoescapes my code" %} 

Wie kann ich meine Tagdefinition ändern autoescaping zu verhindern, so dass ich müssen nicht Vorlagen ändern:

{% autoescape off %}{% my_tag "workaround, this doesn't autoescape html" %}{% endautoescape %} 

Antwort

1

Sie können Ergebnis sicher mit mark_safe Methode markieren:

from django.utils.html import mark_safe 
def my_tag(*args) -> str: 
    return mark_safe(result) 
Verwandte Themen