Я немного новичок в Джанго, так что терпите меня. Я делаю наивный нечеткий поиск, как он работает, но в результате я получаю следующий контекст:
context = {plst : {0 :
{ player : playerObject; performance : PerfObject; salary : SalaryObject; socialMedia : socialMediaObject};
1:
{....};
... } }
Я получаю каждый из этих объектов с помощью таких функций, как: производительность= get_object_or_404 (PlayerPerformance, player_name = player_name), хотя я не думаю, что это имеет значение. Однако следует сказать, что каждый объект имеет несколько разные «атрибуты».
Поэтому я не думаю, что стандарт для цикла может работать.
Проблема возникает, когда я пытаюсь визуализироватьэто в player.html.
Я могу сделать это, стандартный цикл for, правильно:
{% for iter, values in plst.items %}
<p> {{iter}} </p>
{% for k, v in values.items %}
<p> {{k}} : {{v}} </p>
{% endfor %}
{% endfor %}
, что приводит к:
player : James Harden
performance : PlayerPerformance object (2)
salary : PlayerSalary object (2)
socialMedia : PlayerSocialMedia object (213)
Но это не 'я не могу получить доступ к внутренним элементам значений. Как performance.points.
Я также могу сделать это:
{% for iter, values in plst.items %}
{% for k, v in values.items %}
Player: {{v.age}}
{% endfor %}
{% endfor %}
, который отображает:
Игрок: 27 Игрок: Игрок: Игрок:
Это имеет смысл, потому что только объект игрока имеет параметр "age"
Между тем это:
{% for iter, values in plst.items %}
{% for k, v in values.items %}
Player: {{v.player_name}}
{% endfor %}
{% endfor %}
дает
Игрок: Джеймс Харден Игрок: Джеймс Харден Игрок:Джеймс Харден Игрок: Джеймс Харден
, потому что все четыре объекта используют имена в качестве идентификаторов, а все четыре имеют атрибут "player_name".
В идеале мне нужно что-то вроде этого:
{% for iter, values in plst.items %}
{% for player, perf, salary, socMedia in values.items %}
Player: {{player.player_name}}
Age: {{player.age}}
Position: {{player.position}}
Points: {{perf.points}}
Turnover: {{perf.turnover}}
etc.
{% endfor %}
{% endfor %}
Но, к сожалению, это не работает. Оператор if, который может различать по ключам, также может сработать, но я не могу найти, как это сделать.
Да ... Дайте мне знать, если я смогу сделать что-нибудь более ясное. Спасибо за вашу помощь.