Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Вывод видео в статью. Траблы с циклом [RSS Feed]

#1 Апрель 9, 2016 10:48:31

quix
Зарегистрирован: 2012-06-23
Сообщения: 105
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод видео в статью. Траблы с циклом

Приветствую! Задача: с каждой статьей выводить напримар видео с 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 %}

Офлайн

#2 Апрель 9, 2016 11:17:16

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Вывод видео в статью. Траблы с циклом

quix
context[ "insert" ] = AddCodeYoutube.objects.all()[0]
а почему оно должно быть другое, если запрос один и тот же?



Отредактировано FishHook (Апрель 9, 2016 11:17:52)

Офлайн

#3 Апрель 9, 2016 14:33:27

quix
Зарегистрирован: 2012-06-23
Сообщения: 105
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод видео в статью. Траблы с циклом

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 %}

Офлайн

#4 Апрель 9, 2016 15:00:34

quix
Зарегистрирован: 2012-06-23
Сообщения: 105
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод видео в статью. Траблы с циклом

<li>{{ insert.add_youtube|safe| escape }}  </li>
гм….???

Офлайн

#5 Апрель 9, 2016 16:18:24

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Вывод видео в статью. Траблы с циклом

quix
Тут все верно?
конечно нет, в контексте одно, в цикле другое.



Офлайн

#6 Апрель 9, 2016 18:13:36

quix
Зарегистрирован: 2012-06-23
Сообщения: 105
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод видео в статью. Траблы с циклом

FishHook
как же выдрать нужное из контекста?
ткните носом

Офлайн

#7 Апрель 13, 2016 06:40:53

quix
Зарегистрирован: 2012-06-23
Сообщения: 105
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод видео в статью. Траблы с циклом

Пришел к такому решению.

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

Спасибо!

Офлайн

#8 Апрель 16, 2016 19:30:35

quix
Зарегистрирован: 2012-06-23
Сообщения: 105
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод видео в статью. Траблы с циклом

И снова здравствуйте!!!

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)

Офлайн

#9 Апрель 16, 2016 19:40:28

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Вывод видео в статью. Траблы с циклом

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



Офлайн

#10 Апрель 16, 2016 19:44:37

quix
Зарегистрирован: 2012-06-23
Сообщения: 105
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод видео в статью. Траблы с циклом

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

Вы лучший!!! Спасибо! Буду рыть!!!

Офлайн

  • Начало
  • » Django
  • » Вывод видео в статью. Траблы с циклом[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version