【问题标题】:Links as variables arent getting passed properly from the template to urls.py to views.py作为变量的链接没有从模板正确传递到 urls.py 到 views.py
【发布时间】:2016-07-04 02:06:32
【问题描述】:

我正在尝试构建一个嵌入了 YouTube 播放器并加载了默认视频的页面。在侧边栏上,我有一些其他视频的照片。单击其中一张图片时,模板会自行重新加载,但 YouTube 播放器现在正在播放另一张视频。这些图片中的每一个都有一个 YouTube 网址,需要在点击时播放。与任何视频的 YouTube 页面非常相似。

HTML:

                <div class="col-md-12 col-xs-12 video_menu_item">
            <div class="video_menu_description">
            <a href="/library/videos/" value="https://www.youtube.com/embed/EWrT-aBDxeI" name="para">
                <img src="/images/X.jpg" alt="Video name thumbnail" style="width:60%;height:100px;">
            </a>
            </div>
        </div>  

<div class="video_section_outer">
    <div class="col-md-12 col-xs-12 video_scroll_track">
        <div class="col-md-12 col-xs-12 video_item_outer">
            <h4 class="col-md-12 col-xs-12 video_track_sub_heading"><b>video.v_name</b></h4>
            <div class="col-md-12 col-xs-12 test_button_start">
                <iframe width="420" height="315" src="{{ link }}" frameborder="0" allowfullscreen></iframe>
            </div>
        </div>
    </div>
</div>

URLS.PY:

    from django.conf.urls import include, url
    from django.contrib import admin

    urlpatterns = [

        # Video Sections
        url(r'^library/tests/', 'bt.views.tests', name='tests'),
        url(r'^library/videos-(?P<link1>[\w-]+)/', 'bt.views.videos', {'link': 'para'}),
        url(r'^library/videos/', 'bt.views.videos', name='videos'),
]

VIEWS.PY:

@csrf_exempt
def videos(request, link1 = "https://www.youtube.com/embed/Qj4nEYQA9ks"):
    content = {"link" : link1}
    return render_to_response('videos.html', content)

【问题讨论】:

标签: django


【解决方案1】:

我认为传递整个 youtube 网址并不理想。您只需将视频 ID 作为 GET 参数传递即可,如下所示:

# urls.py
urlpatterns = [
    # Video Sections
    url(r'^library/tests/', 'bt.views.tests', name='tests'),
    url(r'^library/videos/', 'bt.views.videos', name='videos'),
]

# views.py
def videos(request):
    link = 'https://www.youtube.com/embed/{}'.format(
        request.GET.get('id', 'Qj4nEYQA9ks')
    )
    return render_to_response('videos.html', {'link': link})

# videos.html
<a href="{% url 'videos' %}?id=EWrT-aBDxeI">
    <img src="/images/X.jpg" alt="Video name thumbnail">
</a>
<iframe width="420" height="315" src="{{ link }}" frameborder="0" allowfullscreen></iframe>

如果有什么不清楚的地方请告诉我。

【讨论】:

  • 嘿,RL,我不知道你的大脑是如何连接的,但这就像魔术一样!谢谢!如果我有权授予哈利波特奖牌,你完全可以得到一枚。同时,您是否建议完全阅读 django 文档?我没有,因为它很大,而且我目前没有那么多时间——但我确实想相当熟练地在这种环境中进行开发。我是 3 周前开始的,不知道是花太多时间还是太少时间。
  • @DeepakMp 然后奖励该人接受的答案。我还强烈建议您阅读整个文档,它非常有帮助,不是那么大而且非常简洁。
  • @DeepakMp 哈,我想我现在需要的只是让您将其作为可接受的答案。 :) 无论如何,正如 wtower 所说,强烈建议阅读整个文档,但如果您没有太多时间,那么您可以开发您想要的应用程序,然后在遇到任何问题时返回文档。
猜你喜欢
  • 2014-01-13
  • 2013-05-08
  • 2020-04-23
  • 2015-08-22
  • 2011-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-10
相关资源
最近更新 更多