Django - Добавление значений словаря возвращает пустой словарь - PullRequest
0 голосов
/ 01 августа 2020

У меня есть список слов под названием lyrics_sorted, который выглядит так:

lyrics_sorted = ['word1', 'word2', 'word3', ]

Теперь я хочу создать словарь с этим в качестве одного из ключей, и еще один ключ - нормализованная форма слова.

Итак, сначала я объявляю ключевые значения, например:

word_original = lyrics_sorted
word_normalized = []

А затем словарь:

grammar_dict = {'word_original': word_original, 'word_normalized': word_normalized}

И теперь для каждого слова в word_original (или lyrics_sorted) я хочу добавить нормализованную форму, поэтому я делаю следующее:

for word in lyrics_sorted:
    w = morph.parse(word)[0]
    word_normalized.append(w.normal_form)

    context['grammar_dict'] = list(zip(grammar_dict['word_original'],
                                       grammar_dict['word_normalized'],))
return context

Но я получаю только пустой список. Я не могу понять, что делаю не так; при тестировании в оболочке работает.

1 Ответ

2 голосов
/ 01 августа 2020

Я бы использовал go с этой настройкой.

class MyView(...):

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        lyrics_sorted = ['word1', 'word2', 'word3', ]
        grammar_list = []
        for word in lyrics_sorted:
            parsed_word = morph.parse(word)[0]
            result = {
                'word_original': word,
                'word_normalized': parsed_word.normal_form
            }
            grammar_list.append(result)

            context['grammar_list'] = grammar_list
        return context

Итак, grammar_list будет выглядеть как

[
    {'word_original': 'word1', 'word_normalized': 'word1_normalized'},
    {'word_original': 'word2', 'word_normalized': 'word2_normalized'},
    {'word_original': 'word3', 'word_normalized': 'word3_normalized'},
]

, следовательно, вы можете получить доступ к grammar_list переменная контекста в вашем шаблоне Django как,

{% for item in grammar_list %}
    {{ item.word_original }} ---- {{ item.word_normalized }}
{% endfor %}
...