Доступ к свойствам класса данных по имени в шаблоне Django

В Django я создал dataclass, чтобы помочь мне перемещать данные стандартным образом:

# models.py
class Person(models.Model):
  name = CharField(max_length=50)

#utils.py
@dataclass
class Performance:
  person: Person
  last_year: int
  five_years: int

Идея здесь в том, что я могу обращаться к свойствам по имени при передаче их в шаблон:

#views.py
class IndexView(View):
  def get(self, request):
    persons = Person.objects.filter(name="pam")
    perfs_array = []

    for person in persons:
      p = Performance()
      p.last_year = #some math
      p.five_years = #more math
      perfs_array.append(p)
    
    context = {"perfs": perfs_array}
    return render(...) 

Цель состоит в том, чтобы уметь делать следующее:

<!--index.html-->
{% for perf in perfs %}
  <h1>{{ perf.person.name }}</h1>
  <p>last year's performance: {{ p.last_year }}</p>
{% endfor %}

Однако, я могу получить доступ к данным только используя нумерованные индексы:

<!--index.html-->
{% for perf in perfs %}
  <h1>{{ perf.0.name }}</h1>
  <p>last year's performance: {{ p.1 }}</p>
{% endfor %}

Это очень затрудняло написание корректного кода и отладку шаблонов, когда все пошло наперекосяк. Есть ли способ получить доступ к данным с именованными индексами?

Спасибо!

Вернуться на верх