Господа, помогите разобраться в ошибке. Ее суть я понимаю- попытка преобразовать строку к числу. Однако в обозримом коде никаких действий со числами не происходит. Где "собака" зарыта?
URLS.PY
from django.urls import path
from . import views
from .views import tech_type_list
urlpatterns = [
path('', views.tech_list, name='tech_list'),
path('<tech_type>/', tech_type_list, name='tech_type'),
]
Models.py
from django.db import models
class TechType(models.Model):
type_name = models.CharField(max_length=100, verbose_name='Вид техники', unique=True)
def __str__(self):
return self.type_name
class TechUnit(models.Model):
inner_id = models.CharField(max_length=100, verbose_name='Внутренний номер', unique=True)
tech_type = models.ForeignKey(TechType, on_delete=models.CASCADE, verbose_name='Вид техники')
def __str__(self):
return self.inner_id
Views.py
from django.shortcuts import render
from .models import TechType, TechUnit
from django.shortcuts import render, get_object_or_404
def tech_list(request):
tech_type = TechType.objects.order_by('type_name')
return render(request, 'checklist/tech_list_page.html', {'tech_type': tech_type})
def tech_type_list(request, tech_type):
template = 'checklist/tech_detail.html'
tech_list = TechUnit.objects.filter(tech_type=tech_type)
context = {
'tech_list': tech_list,
}
return render(request, template, context)
Ну и собственно шаблон, в который я пытаюсь все это вывести
{% extends 'checklist/base.html' %}
{% block content %}
<h1>Единицы техники типа {{ tech_list.tech_type }}</h1>
<ul>
{% for item in tech_list %}
<li>{{ item }}</li>
{% endfor %}
</ul>
{% endblock %}
Если задать для экземпляра класса tech_type имя, состоящее из цифр- ошибок нет. Если ввести буквы- появляется ValueError: invalid literal for int() with base 10. Где джанго пытается перевести буквы в цифры?