【问题标题】:Can't Embed YouTube Link Within Django Template Tag, Twitter Bootstrap无法在 Django 模板标签、Twitter Bootstrap 中嵌入 YouTube 链接
【发布时间】:2012-06-10 21:53:05
【问题描述】:

我目前正在尝试通过 Django 表单在 Twitter Bootstrap 布局中嵌入用户提交的 YouTube 链接。

视频的空间出现了,源代码反映了正确的信息和链接,但是视频和播放器都没有出现。我还使用此链接中的“flex-video”类作为响应式布局http://poslavsky.com/blog/2012/04/01/responsive-video-in-twitter-bootstrap/,但是当该类更改为另一个名称(例如“video”)时它也不起作用。

这是代码:

<div class="row">
<div class="span12">
    <span>{{story.author}}</span><br>

    <span>{{story.zip_code}}</span><br>

    <span>{{story.date}}</span><br>

    <p>{{story.copy}}</p>
    <div class="image">
        {% if story.pic %}
        <img src="{{ story.pic.url }}" alt="some_image_alt_text" />
        {%  endif %}
    </div>
    <div class="flex-video">
            {% if story.video %}
            <p> <iframe width="460" height="250" src="{{ story.video}}" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
                </p>
        {% endif %}
        </div>
</div>

非常感谢任何见解。

【问题讨论】:

  • 您确定这是一个有效的 YouTube 网址吗?复制渲染页面上src属性的内容,在新标签页中查看。

标签: django youtube django-templates twitter-bootstrap


【解决方案1】:

我猜{{story.video}} 给 Youtube 视频网址提供了类似于 http://youtube.com/watch?v=ASO_ypdnsQ 的内容,这是直接的 youtube 网址,而不是嵌入网址。

同一视频的嵌入网址与直接网址不同,例如 http://youtube.com/embed/....

我创建了一个自定义模板标签,方法如下。

import urlparse
...

@register.inclusion_tag('video_embed.html', takes_context=True)
def youtube_embed(context, url):
    url_data = urlparse.urlparse(url)
    query = urlparse.parse_qs(url_data.query)
    video_id = query["v"][0]
    context['embed_url'] = ('http://youtube.com/embed/%s' % video_id)
    return context

然后,在模板中加载标签,并传递 youtube url。它会从普通 url 中提供嵌入 url。

【讨论】:

    猜你喜欢
    • 2010-09-20
    • 2016-05-02
    • 1970-01-01
    • 2016-05-21
    • 2013-05-26
    • 1970-01-01
    • 2011-05-28
    • 2012-01-26
    • 2012-07-09
    相关资源
    最近更新 更多