1

我目前正在尝试通过 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>

任何见解都非常感谢。

4

1 回答 1

0

我猜想{{story.video}}给 Youtube 视频 Url 类似于这个的东西,http://youtube.com/watch?v=ASO_ypdnsQ它是直接的 youtube url,而不是嵌入 url。

同一视频的嵌入 URL 与直接 URL 不同,如下所示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。它将从普通网址提供嵌入网址。

于 2013-04-16T15:27:10.157 回答