Я довольно новичок в django и пытаюсь вызвать функцию django в html для отображения количества объектов Akte в соответствующем объекте Charge, но почему-то мне не хватает правильного способа сделать это.
models.py:
class Charge(models.Model):
STATI = (
('O','Offen'),
('G','Geschlossen'),
)
"Projektnr = models.CharField(max_length=30)"
Containernr = models.CharField(max_length=30)
Plombennr = models.CharField(max_length=30)
status = models.CharField(max_length=1, choices=STATI)
def __str__(self):
return self.Containernr
class Akte(models.Model):
Aktenbarcode = models.CharField(max_length=30)
"Eincheckdatum = models.datetime()"
user = models.CharField(max_length=30)
containerId = models.ForeignKey(Charge,on_delete=models.CASCADE)
kundennr = models.CharField(max_length=30)
Startdatum = models.DateField(auto_now_add=True)
def __str__(self):
return self.Aktenbarcode
и это мои views.py:
def tabelle(request):
assert isinstance(request, HttpRequest)
charge_list = Charge.objects.all()
return render(
request,
'app/tabelle.html',
{
'charge_list':charge_list,
}
)
def anzahl(containernr):
return {'anzahl': Akte.objects.filter(containerId__Containernr==containernr).count }
и вот HTML-код:
{% extends "app/ats.html" %}
{% block content %}
{% if not user.is_anonymous %}
<div style="margin-left:10%;color:white;"><a style="color:white"href="{% url 'home'%}">Home</a> ><a style="color:white"> Tabellenübersicht</a></div>
<div>
<table>
<tr>
<th>Containernummer</th>
<th>Status</th>
<th>Anzahl Akten</th>
<th>Plombennummer</th>
<th></th>
</tr>
{%for Charge in charge_list%}
<tr>
<td>{{Charge.Containernr}}</td>
<td>{{Charge.status}}</td>
<td>{% anzahl Charge.Containernr %}</td>
<td>{{Charge.Plombennr}}</td>
</tr>
{% endfor %}
</table>
</div>
{% endif %}
{% endblock %}
когда я пытаюсь это сделать, я всегда получаю эту ошибку:
TemplateSyntaxError at / tabelle
Недопустимый тег блока в строке 19: «anzahl (Charge.Containernr)», ожидаемый «пустой» или «endfor». Вы забыли зарегистрироваться или загрузить этот тег?
как правильно решить эту проблему?