zdefiniowałem mój własny Django filtr youtube_embed_url w templatetags/custom_filters.py. Zajmuje URL YouTube i zwraca ciąg znaków, który jest osadzić kod dla filmu. Kod dla templatetags/custom_filters.py jest poniżej:Django: konwersja Youtube URL do kodu HTML embed
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
Potem ten filtr na stronie link_page.html. Oto odnośny fragment link_page.html:
<div>
{{ link.url|youtube_embed_url }}
</div>
Jednak, kiedy wyświetlić stronę linku w przeglądarce widzę kod HTML w ciągu:
Każdy pomysł jak Marka wynikiem sposobu youtube_embed_url należy interpretować jako kod HTML, a nie ciąg? góry dzięki, chłopaki!
Czekając na prawdziwą odpowiedź, proszę spojrzeć na http://stackoverflow.com/questions/4848611/django-rendering-a-template-variable- as-html – kush
@Arman, Dzięki za użytecznego kodu. –
Pozwoliłoby chłodne Django fragment ... – nicorellius