モデルにYouTubeリンクのリストを保存しようとしていますが、YouTubeの埋め込みコードを使用してレンダリングされたテンプレートにリストとして渡しています。すべて正常に動作しているようですが、変数はビデオが表示されない限り正しく渡されます。 YouTubeのiframeコードは空白ですが、YouTube埋め込みコードのコピー/貼り付けはうまく表示されます。Djangoを使用してテンプレートにYouTube動画を表示する
モデルのコード:
from django.db import models
class Video(models.Model):
link = models.URLField()
def __str__(self):
return self.link
ビューでコード:
def index(request):
full_list = Video.objects.all()
return render_to_response('index.html', {'full_list': full_list})
テンプレートのコード:
<h1>YouTube list</h1>
{% if full_list %}
<ul>
{% for video in full_list %}
<li>
<!-- link passed to embed code, this shows up as blank -->
<iframe width="560" height="345" src="{{ video.link }}?rel=0" frameborder="0" allowfullscreen></iframe>
<!-- YouTube embed link copy/pasted as is -->
<iframe width="560" height="345" src="http://www.youtube.com/embed/vLmNvYTTWXM?rel=0" frameborder="0" allowfullscreen></iframe>
</li>
{% endfor %}
</ul>
{% else %}
<p>No videos available</p>
{% endif %}
画面https://img.skitch.com/20110910-t78bm288mxh6nmyjmcbxyjr37n.png
テンプレートが最初にレンダリングされ、変数が2番目に追加されているため、YouTubeのサーバーが呼び出されていないと推測しています。これは正しい仮定ですか、もしそうなら、どうやって修正するのでしょうか?
今私は気が気になりません。最後に、HTMLコードの問題を理解しました。 YouTube iFrameの埋め込みによってURIが変更されます。これはYouTubeのURLとは異なります。古い埋め込みコードは同じことを行います。私はYouTubeのビデオIDを正規表現するコードを書いて、それを埋め込みコードに入れてもうまくいきます。もう一度あなたの助けをありがとう! –
@ Jerryあなたは同じことをして同じ問題に直面するために必要なコードを貼り付けてください。 –