Ich habe meinen benutzerdefinierten Django-Filter youtube_embed_url in templatetags/custom_filters.py definiert. Es nimmt eine Youtube-URL und gibt die Zeichenfolge zurück, die den Code für das Video einbetten soll. Der Code für templatetags/custom_filters.py unter:Django: Youtube-URL in HTML-Code umwandeln
from django import template
from django.conf import settings
register = template.Library()
import re
@register.filter(name='youtube_embed_url')
# converts youtube URL into embed HTML
# value is url
def youtube_embed_url(value):
match = re.search(r'^(http|https)\:\/\/www\.youtube\.com\/watch\?v\=(\w*)(\&(.*))?$', value)
if match:
embed_url = 'http://www.youtube.com/embed/%s' %(match.group(2))
res = "<iframe width=\"560\" height=\"315\" src=\"%s\" frameborder=\"0\" allowfullscreen></iframe>" %(embed_url)
return res
return ''
youtube_embed_url.is_safe = True
Dann habe ich diese Filter in link_page.html Webseite. Hier ist der relevante Teil der link_page.html:
<div>
{{ link.url|youtube_embed_url }}
</div>
Allerdings, wenn ich den Link Seite in Browser anzeigen sehe ich den HTML-Code als Zeichenfolge:
Irgendeine Idee, wie man das Ergebnis der youtube_embed_url-Methode als HTML-Code interpretieren, nicht als String? Vielen Dank im Voraus, Leute!
Während wir für eine wirkliche Antwort warten, nehmen Sie bitte einen Blick auf http://stackoverflow.com/questions/4848611/django-rendering-a-template-variable- as-html – kush
@Arman, Danke für den nützlichen Code. –
Das wäre ein cooler Django-Snippet ... – nicorellius