2015-07-12 39 views
2

我想达到列表中的每个项目以生成新的视频源,其中包括我的一些代码。例如,我想要做一些像{{url_list.video_count}}更改视频。我怎样才能做到这一点?javascript中的Django列表项目

我想在我的网站上播放视频。在我看来,{{url_list.0}}非常适合首发。在JavaScript中,我想根据{{url_list.video_count}}更改源,以在第一个视频结束时播放其他视频。

我基本上想要一个看不见的播放列表。

这里是我的JavaScript代码:

var video_count = 1; 
videoPlayer = document.getElementById("example_video"); 
arr_length = {{ url_list.count }}; 
function run() { 
    video_count++; 
    if (video_count == arr_length) video_count = 0; 
     nextVideo = "{{ url_list.1}}"; 
     videoPlayer.src = nextVideo; 
     videoPlayer.play(); 
    }; 

在views.py:

def get_context_data(self,**kwargs): 
    context = super(VideoListView, self).get_context_data(**kwargs) 
    context['url_list'] = Video.objects.all().order_by("-order").values_list("url", flat=True) 
    return context 

在models.py:

@receiver(pre_save,sender=Video) 
def video_url_handler(sender,instance,*args,**kwargs): 
    instance.url = "media/video/%i.ogg" % instance.id 
+0

问题编辑 – kings856

回答

0

在JS:

var table = document.getElementById("playlist"); 
var cells = table.getElementsByTagName("li"); 
var values = $(cells).text() 
var video_count = 0; 
videoPlayer = document.getElementById("example_video"); 
arr_length = {{ url_list.count }}; 
function run(){ 
    video_count++; 
    if (video_count == arr_length) video_count = 0; 
    nextVideo = $(cells[video_count]).text(); 
    videoPlayer.src = "" + nextVideo; 
    videoPlayer.play(); 
    }; 

在HTML:

<div id="playlist" style="display:none;"> 
<h2>Playlist</h2> 
<ul> 
{% for url in url_list %} 
<li id="playlist-one">{{url}}</li> 
{% endfor %} 
</ul> 
</div> 

我做那些和它的工作对我来说

0

我相信你应该首先你的列表转换JavaScript对象表示法(JSON):

import json 

def get_context_data(self,**kwargs): 
    context = super(VideoListView, self).get_context_data(**kwargs) 
    url_list = Video.objects.all().order_by("-order").values_list("url", flat=True) 
    context['url_list'] = json.dumps(url_list) 
    return context 

我不确定我是否明白你想要做什么,但我从来没有在JS中使用过视频。如果您提供更多细节,也许我可以进一步提供帮助

+0

我想你的答案URL_LIST没有定义的错误我也尝试过“url_list”并且我得到了“U rl L ist”也试过json.dumps(上下文)并且我得到了[u'media/video/2.ogg',u'media/video/1.ogg']不是JSON可序列化 – kings856

+0

试试在上下文['url_list']之前dding“print(url_list)”,看看会发生什么。 – Brachamul

+0

我做了你的建议和[u'media/video/2.ogg',u'media/video/1.ogg'] – kings856