Как передать значение в функцию тега шаблона Django Custom

Появилась ошибка в моем проекте домашнего животного:

TemplateSyntaxError at /car/2/
'get_car_info' did not receive value(s) for the argument(s): 'car_id'

Как я вижу, функция в тегах пользовательского шаблона не может принимать значение, но журнал Django показывает, что переменная car_id существует:

Local vars
Variable    Value
car_id      2
context     {'spare_parts': <QuerySet [<Mileage: Рулевой наконечник Sasic 7674007>]>,
 'title': 'Список запчастей для'}
request     <WSGIRequest: GET '/car/2/'>

models.py

class Car(models.Model):
brand = models.CharField(max_length=40, db_index=True, verbose_name="Марка")
model_name = models.CharField(max_length=60, db_index=True, verbose_name="Модель")
model_variant = models.CharField(max_length=100, db_index=True, verbose_name="Модификация")
age = models.SmallIntegerField(verbose_name="Год выпуска")

views.py (закомментированный код перенесен в теги пользовательского шаблона)

def get_car_spare_parts(request, car_id):
spare_parts = Mileage.objects.filter(car_id=car_id)
# car = Car.objects.get(id=car_id)
context = {
    'spare_parts': spare_parts,
    'title': 'Список запчастей для',
    # 'model_name': car.model_name,
    # 'brand': car.brand,
    # 'car_age': car.age,
}
return render(request, 'mileage/car.html', context)

urls.py

urlpatterns = [
path('car/<int:car_id>/', get_car_spare_parts, name='car_spare_parts'),]

mileage_tags.py

@register.simple_tag
def get_car_info(car_id):
car = get_object_or_404(Car, car_id=car_id)
return car

car.html

{% extends 'base.html' %}
{% load mileage_tags %}

{% block head %}
<title>{{ title }}</title>
{% endblock %}

{% block body %}
<h1>{{ title }} {{ brand }} {{ model_name }} {{ car_age }} г./в.</h1>
 {% get_car_info %}
 <ol class="list-group list-group-numbered">
    {% for item in spare_parts %}
        <li class="list-group-item"><a href="{% url 'spare_parts_mileages' item.car_id item.spare_part_id %}">{{ item }}</a></li>
    {% endfor %}
 </ol>
{% endblock %}

Как это исправить?

Здесь вы можете отобразить автомобиль в контексте вместо того, чтобы отображать каждое поле, затем вы можете получить доступ к полю в шаблоне, как вы это делаете в контексте.

def get_car_spare_parts(request, car_id):
 spare_parts = Mileage.objects.filter(car_id=car_id)
 car = Car.objects.get(id=car_id)
 context = {
    'spare_parts': spare_parts,
    'title': 'Список запчастей для',
    'car':car
  }
 return render(request, 'mileage/car.html', context)

затем в вашем шаблоне

{% extends 'base.html' %}
{% load mileage_tags %}

{% block head %}
<title>{{ title }}</title>
{% endblock %}

{% block body %}
<h1>{{ title }} {{ car.brand }} {{ car.model_name }} {{ car.age }} г./в.</h1>
 {% get_car_info car.id %}
 <ol class="list-group list-group-numbered">
    {% for item in spare_parts %}
        <li class="list-group-item"><a href="{% url 'spare_parts_mileages' item.car_id item.spare_part_id %}">{{ item }}</a></li>
    {% endfor %}
 </ol>
{% endblock %}

По вашему вопросу вам нужно передать id автомобиля в теге шаблона следующим образом

{% get_car_info car.id %}
Вернуться на верх