Доступ к свойствам класса данных по имени в шаблоне 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 %}
Это очень затрудняло написание корректного кода и отладку шаблонов, когда все пошло наперекосяк. Есть ли способ получить доступ к данным с именованными индексами?
Спасибо!