私は独自のDjangoフィルタyoutube_embed_urlをtemplatetags/custom_filters.pyに定義しました。それはYoutube URLを受け取り、ビデオの埋め込みコードである文字列を返します。 templatetags/custom_filters.pyのためのコードは以下の通りです:Django:Youtube URLをHTML埋め込みコードに変換する
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
は、それから私はlink_page.htmlページにこのフィルタを使用しています。ここlink_page.htmlの関連部分は次のとおりです。
<div>
{{ link.url|youtube_embed_url }}
</div>
私は、ブラウザでリンクページを表示するときしかし、私は文字列としてHTMLコードを参照してください。
どのように任意のアイデアyoutube_embed_urlメソッドの結果を文字列ではなくHTMLコードとして解釈させますか?事前に感謝、みんな!
私たちは本当の答えを待っている間、http://stackoverflow.com/questions/4848611/django-rendering-a-template-variable-をご覧くださいas-html – kush
@Arman、便利なコードをありがとう。 –
これはクールなDjangoスニペットを作るでしょう... – nicorellius