У меня есть models.py
, где я указываю класс с 3 ImageFields
и 3 CharFields
. В CharFields есть идентификаторы видеоизображения youtube, которые я хочу использовать в detail.html
. Но я не знаю, как я должен относиться к элементам в details.html
Loops in django 1.8 views
Мои models.py
from django.db import models
class Feat(models.Model):
feat_name = models.CharField(max_length=200,default="feature1")
feat_img1 = models.ImageField(upload_to="%Y/%m/%d",default="1992/08/92")
feat_img2 = models.ImageField(upload_to="%Y/%m/%d",default="1992/08/92")
feat_img3 = models.ImageField(upload_to="%Y/%m/%d",default="1992/08/92")
feat_vid1 = models.CharField(max_length=200,default="3NQRhE772b0")
feat_vid2 = models.CharField(max_length=200,default="XU3h3CVI_gI")
feat_vid3 = models.CharField(max_length=200,default="vqHIQD4_lu4")
num = models.IntegerField(default=0)
def __str__(self):
return self.feat_name
view.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 Feat
class IndexView(generic.ListView):
template_name = 'feature/base.html'
context_object_name = 'latest_feat_list'
def get_queryset(self):
return Feat.objects.order_by('-num')[:1]
class DetailView(generic.DetailView):
model = Feat
template_name = 'feature/detail.html'
base.html
{% if latest_feat_list %}
<ul>
{% for feat in latest_feat_list %}
<a href="{% url 'feature:detail' feat.id %}"><img src="{{ feat.feat_img1.url }}" alt="ac/dc">
<a href="{% url 'feature:detail' feat.id %}"><img src="{{ feat.feat_img2.url }}" alt="ac/dc">
<a href="{% url 'feature:detail' feat.id %}"><img src="{{ feat.feat_img3.url }}" alt="ac/dc">
{% endfor %}
</ul>
{% else %}
<p>No </p>
{% endif %}
detail.html
{% for `condition` %}
<img id="hide" src="http://img.youtube.com/vi/{{ choice.feat_vid1 }}/hqdefault.jpg" data-video="https://www.youtube.com/embed/{{ choice.feat_vid1 }}?autoplay=1" width="480" height="300"/>
<img id="hide" src="http://img.youtube.com/vi/{{ choice.feat_vid2 }}/hqdefault.jpg" data-video="https://www.youtube.com/embed/{{ choice.feat_vid2 }}?autoplay=1" width="480" height="300"/>
<img id="hide" src="http://img.youtube.com/vi/{{ choice.feat_vid3 }}/hqdefault.jpg" data-video="https://www.youtube.com/embed/{{ choice.feat_vid3 }}?autoplay=1" width="480" height="300"/>
{% endfor %}
мои приложения urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.IndexView.as_view(), name='base'),
url(r'^(?P<pk>[0-9]+)/$', views.DetailView.as_view(), name='detail'),
]
Мне нужно, чтобы отобразить все идентификаторы, передаваемые в Feat
классе в detail.html
, но не знают, как обращаться к элементам в Feat
.
«DetailView» сделает выбранный объект модели «Feat» доступным в переменной контекста «feat». См. ['Get_context_object_name()'] (https://docs.djangoproject.com/en/1.8/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin.get_context_object_name) , Charfields - это 'feat.feat_vid1',' feat.feat_vid2', ... – dhke
Не могли бы вы объяснить это немного больше.Я новичок, и я не понимаю, как эту функцию можно использовать в подробном просмотре для отображения выбранных видео. – WutWut
Можете ли вы добавить часть своего 'urls.py', где вы ссылаетесь на' DetailView'? Я должен уметь объяснить вам пример. – dhke