2015-07-12 42 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