Найти - Пользователи
Полная версия: Вывод видео в статью. Траблы с циклом
Начало » Django » Вывод видео в статью. Траблы с циклом
1 2 3 4
quix
Приветствую! Задача: с каждой статьей выводить напримар видео с 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

models:
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 %}
FishHook
quix
context[ "insert" ] = AddCodeYoutube.objects.all()[0]
а почему оно должно быть другое, если запрос один и тот же?
quix
FishHook
Веоно замечено.
Но если так
[
context[ "insert" ] = AddCodeYoutube.objects.all()
Все равно YoTube не выводится.

Тут все верно? Что-то у меня сомнения…
{% 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 %}
quix
<li>{{ insert.add_youtube|safe| escape }}  </li>
гм….???
FishHook
quix
Тут все верно?
конечно нет, в контексте одно, в цикле другое.
quix
FishHook
как же выдрать нужное из контекста?
ткните носом
quix
Пришел к такому решению.

context[ "insert" ] = AddCodeYoutube.objects.get(pk = self.kwargs['pk'])

Спасибо!
quix
И снова здравствуйте!!!
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>>] 


FishHook
quix
Чтобы не было “колбасы” нужен один объект. Один объект возвращается методом get, а методом filter всегда возвращается много объектов (то есть список, даже если он пустой он всё равно список).
quix
FishHook
quixЧтобы не было “колбасы” нужен один объект. Один объект возвращается методом get, а методом filter всегда возвращается много объектов (то есть список, даже если он пустой он всё равно список).

Вы лучший!!! Спасибо! Буду рыть!!!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB