Форум сайта python.su
0
Приветствую! Задача: с каждой статьей выводить напримар видео с YouTube. Видео у меня получилось прилепить, но только вот в следующей статье у меня выводится все тоже видео вместо другого.
view:
class ArticleVifania(ListView): model = Article template_name = "blog/articles.html" context_object_name = "my_favorit_publisher" def get_context_data(self, **kwargs): context = super(ArticleVifania, self).get_context_data(**kwargs) context[ "insert" ] = AddCodeYoutube.objects.all()[0] return context
class AddCodeYoutube(models.Model): name_pole = models.CharField(max_length=100, blank=True) add_youtube = models.CharField(max_length=300, verbose_name='Добавить код с YouTube') def __unicode__(self): return "%s" % self.name_pole class Article(models.Model): title = models.CharField(max_length=100) content = models.TextField() date = models.DateTimeField(auto_now=False) article_tag = models.ForeignKey(Tag) video = models.ForeignKey(AddCodeYoutube) def __unicode__(self): return "Заголовок статьи %s" % self.title
{% block content %} <h2>Publishers</h2> <ul> {% for publisher in my_favorit_publisher %} <li>{{ publisher.title }} </li> <!-- Браузером обрабатывается ЮТУБ код --> <li>{{ publisher.content }} </li> <li>{{ publisher.date }} </li> <li>{{ insert.add_youtube|safe|escape }} </li> {% endfor %} </ul> {% endblock %}
Офлайн
568
quixа почему оно должно быть другое, если запрос один и тот же?context[ "insert" ] = AddCodeYoutube.objects.all()[0]
Отредактировано FishHook (Апрель 9, 2016 11:17:52)
Офлайн
0
FishHookВеоно замечено.
context[ "insert" ] = AddCodeYoutube.objects.all()
{% for publisher in my_favorit_publisher %} <li>{{ publisher.title }} </li> <!-- Браузером обрабатывается ЮТУБ код --> <li>{{ publisher.content }} </li> <li>{{ publisher.date }} </li> <li>{{ insert.add_youtube|safe| escape }} </li> {% endfor %}
Офлайн
0
<li>{{ insert.add_youtube|safe| escape }} </li>
Офлайн
568
quixконечно нет, в контексте одно, в цикле другое.
Тут все верно?
Офлайн
0
FishHookкак же выдрать нужное из контекста?
Офлайн
0
Пришел к такому решению.
context[ "insert" ] = AddCodeYoutube.objects.get(pk = self.kwargs['pk'])
Офлайн
0
И снова здравствуйте!!!
class ArticleDetail(DetailView): template_name = "blog/article_detail.html" def get_queryset(self, **kwargs): self.qs = AddCodeYoutube.objects.filter(id = self.kwargs["pk"]) return self.qs def get_context_data(self, **kwargs): context = super(ArticleDetail, self).get_context_data(**kwargs) context[ "articledetail" ] = Article.objects.get(id = self.kwargs["pk"]) context[ "article_youtube_code" ] = self.qs # формирует ключ queryset в контекст return context
[<AddCodeYoutube: <iframe width="560" height="315" src="https://www.youtube.com/embed/C5e6t-eVQoQ" frameborder="0" allowfullscreen></iframe>>]
Отредактировано quix (Апрель 16, 2016 19:36:31)
Офлайн
568
quix
Чтобы не было “колбасы” нужен один объект. Один объект возвращается методом get, а методом filter всегда возвращается много объектов (то есть список, даже если он пустой он всё равно список).
Офлайн
0
FishHook
quixЧтобы не было “колбасы” нужен один объект. Один объект возвращается методом get, а методом filter всегда возвращается много объектов (то есть список, даже если он пустой он всё равно список).
Офлайн