Как получить значение из этого словаря в моем HTML-шаблоне? - PullRequest
0 голосов
/ 24 мая 2019
def playerData(request, player_id):
    r = requests.get("https://api.opendota.com/api/players/" + str(player_id) +"/matches/?limit=20")
    last20matches = json.loads(r.text)

    return render (request, "playerstats.jinja", {'last20' : last20matches,'playerid' : player_id})


{% for entry in last20 %}
    <li>

        <a href= "https://www.dotabuff.com/matches/"> {% entry["match_id"] %}  </a>

    </li>
{% endfor %}

, поэтому в моей функции playerData я получаю игрокам последние 20 матчей и задаю ему значение r.

last20matches - это список из 20 словарей.

Теперь перейдем кшаблон.Я просматриваю каждый словарь (каждый словарь совпадает) и хочу создать ссылку на страницу (https://www.dotabuff.com/matches/match_id).

Однако match_id находится в словаре с ключом match_id. Как мне получитьэто в мою ссылку в html-файле?

Ошибка:

Invalid block tag on line 20: 'entry["match_id"]', expected 'empty' or 'endfor'. Did you forget to register or load this tag?

1 Ответ

0 голосов
/ 24 мая 2019

У вас есть две ошибки.Во-первых, переменные всегда обозначаются {{ ... }}, а не {% ... %}, что для тегов.Во-вторых, все поиски, включая словари, в шаблоне Django выполняются с помощью точечных обозначений, а не квадратных скобок.

Итак:

<a href= "https://www.dotabuff.com/matches/"> {{ entry.match_id }}  </a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...