python - 通过将id作为CharField传递来在django 1.8中显示youtube视频

标签 python django youtube

我一直在尝试通过在类中传递视频ID并替换模板中的值来显示youtube视频,但这似乎并没有发生。
我的models.py
从django.db导入模型

class Rockinfo(models.Model):
   rock_name = models.CharField(max_length=200,default="ac/dc")
   rock_img = models.ImageField(upload_to="%Y/%m/%d",default="1992/08/92")
   rank = models.IntegerField(default=0)


def __str__(self):              
    return self.rock_name


class Rockvids(models.Model):
   rockername = models.ForeignKey(Rockinfo)
   vid_id = models.CharField(max_length=200,default="Z7JgY9zezj4")
   vid_name = models.CharField(max_length=300,default="Something Inside Me")
   vid_singer_name = models.CharField(max_length=300,default="Jonathan Reyes Myers")

def __str__(self):
    return self.vid_id

我的admin.py
from django.contrib import admin
from .models import Rockinfo, Rockvids

class ChoiceInline(admin.TabularInline):
  model = Rockvids
  extra = 10

class RockinfoAdmin(admin.ModelAdmin):
  fieldsets = [
  ('The Fucking Band',               {'fields': ['rock_name']}),
  ('Image', {'fields': ['rock_img']}),
]
inlines = [ChoiceInline]  
list_display = ('rock_name', 'rock_img')
list_filter = ['rank']
search_fields = ['rock_name']


admin.site.register(Rockinfo, RockinfoAdmin)

我的应用程序的urls.py
from django.conf.urls import url

from . import views

urlpatterns = [
   url(r'^$', views.IndexView.as_view(), name='index'),
   url(r'^(?P<pk>[0-9]+)/$', views.DetailView.as_view(), name='detail'),
]

我的应用程序的views.py文件
from django.shortcuts import get_object_or_404, render
from django.http import HttpResponseRedirect, HttpResponse
from django.core.urlresolvers import reverse
from django.views import generic
from .models import Rockvids, Rockinfo


class IndexView(generic.ListView):
   template_name = 'rockinglist/index.html'
   context_object_name = 'latest_rockinfo_list'

   def get_queryset(self):
    return Rockinfo.objects.order_by('-rank')[:50]


   class DetailView(generic.DetailView):
    model = Rockinfo
    template_name = 'rockinglist/detail.html'
index.html文件
 {% if latest_rockinfo_list %}
 <ul>
 {% for rockinfo in latest_rockinfo_list %}
 <h1>{{ rockinfo.rock_name }}</a></li>
 <img src="img\{{ rockinfo.rock_img }}" alt="ac/dc">
 {% endfor %}
 </ul>
 {% else %}
 <p>No</p>
 {% endif %}
detail.html文件
<h1>{{ rockinfo.rock_name }}</h1>
{% for choice in rockinfo.rockvids_set.all %}
<img id="hide" src="http://img.youtube.com/vi/{{ rockvids.vid_id   }}/hqdefault.jpg" data-video="https://www.youtube.com/embed/{{ rockvids.vid_id }}?autoplay=1" width="480" height="300"/>


{% endfor %}

我一直在尝试通过使用Rockvids类中传递的视频ID在用户点击图片后显示所有youtube视频,但是循环中似乎存在一些错误。提前致谢。

最佳答案

在模板循环中,已将对象定义为choice。只是以这种方式引用它,而不是使用rockvids。见下文。

{% for choice in rockinfo.rockvids_set.all %}
<img id="hide" src="http://img.youtube.com/vi/{{ choice.vid_id   }}/hqdefault.jpg" data-video="https://www.youtube.com/embed/{{ choice.vid_id }}?autoplay=1" width="480" height="300"/>
{% endfor %}

由于您将拥有多张图像,因此您可能还希望将id="hide"更改为class="hide",因为页面上应该只有一个元素具有给定的id

关于python - 通过将id作为CharField传递来在django 1.8中显示youtube视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30670587/

相关文章:

javascript - 名称错误 : name "something" is not defined - Web App using Angular JS and Python

Django - 获取 PIL 图像保存方法以与 Amazon s3boto 存储一起使用

ios - UIWebView 在后台更新我有一个 EXC_BAD_ACCESS

javascript - YouTube 跟踪 JQuery 插件 jQuery.tubeplayer.js

python - 输入后的字符串验证或 Python 中的 raw_input

python - 使用 Python 进行密码散列在 Solaris 10 和 11 上产生奇怪的结果

python - 根据请求方法应用装饰器

Django 开发服务器显示 Error 61 Connection Refused with Redis

javascript - Youtube 视频事件未触发 [在本地或其他地方进行测试时]?

python - Numpy:如何在某些元素包含额外的引号字符串时将字符串数组转换为 float