У меня есть следующее ListView
:
class SongList(generic.ListView):
model = models.Song
template_name = 'videos/song_list.html'
context_object_name = 'song_list'
Где я перезаписываю get_context_data
:
def get_context_data(self, **kwargs):
context = super(generic.ListView, self).get_context_data(**kwargs)
И теперь я хочу выполнить некоторые операции с каждой песней по порядку чтобы отобразить его в моем шаблоне, поэтому я делаю:
for song in context['song_list']:
song = models.Song.objects.get(title=song)
lyrics_list = models.Song.objects.get(title=song).lyrics_as_list()
import pymorphy2
morph = pymorphy2.MorphAnalyzer()
lyrics_list_lemma = []
for word in set(lyrics_list):
parsed_word = morph.parse(word)[0]
result = {
'word_original': word,
'word_normalized': parsed_word.normal_form,
}
lyrics_list_lemma.append(result)
context['lyrics_lemma'] = lyrics_list_lemma
context['count'] = len([k for d in lyrics_list_lemma for k in d.keys() if k == 'word_normalized'])
return context
Я получаю правильные значения для lyrics_list_lemma
и count
, , но только для одной песни . Разве я не должен получать его для всех песен, поскольку он попадает под for
l oop?