gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 05:58:04 24 4
gpt4 key购买 nike

我一直在尝试通过在类中传递视频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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com