@organica

ValueError: invalid literal for int() with base 10: 'Pallet_Truck'. Где ошибка?

Господа, помогите разобраться в ошибке. Ее суть я понимаю- попытка преобразовать строку к числу. Однако в обозримом коде никаких действий со числами не происходит. Где "собака" зарыта?
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. Где джанго пытается перевести буквы в цифры?
  • Вопрос задан
  • 24 просмотра
Пригласить эксперта
Ответы на вопрос 1
@tumbler
бекенд-разработчик на python
Ошибка там, куда указывает стектрейс, который Вы привести забыли.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы