Ошибка значения: недопустимый литерал для int() с основанием 10: ‘значок.ico’ в терминале

#python #django #django-views

#python #django #django-просмотры

Вопрос:

Я создаю приложение для блога. И я использую версию Django: — 3.8.1. И я застрял на ошибке.

views.py

 def detail_view(request,id):
    id = int(id)
    data = get_object_or_404(Post,id=id)

    context = {'data':data,}
    return render(request, 'show_more.html', context )
 

urls.py

 path('<id>',views.detail_view,name='detail_view'),
 

show_more.html

 {% extends "base.html" %}
{% load humanize %}
{% load post_tags %}



<br>
<a>Posted at - {{ data.date_added }}</a>
<br>

<br>
  <a>{{ data.blog_post_title }}</a>
  <br>
 

Ошибка

Когда я запускаю сервер. Все работает нормально. Каждая страница открывается нормально, НО когда я вижу терминал, он отображается ValueError: invalid literal for int() with base 10: 'favicon.ico' в терминале на каждой странице, которую я нажимаю в браузере.

Любая помощь будет оценена. Заранее благодарю вас.

Комментарии:

1. Можете ли вы включить шаблон, на который ссылается detail_view ? Ошибка, по-видимому, исходит изнутри detail_view из-за значения, которое указано, поскольку id so, вероятно, исходит из шаблона, отличного от того, который вы включили.

Ответ №1:

попробуйте это

int: раздел сопоставляет строку десятичных цифр и преобразует значение в int.

 path('<int:id>',views.detail_view,name='detail_view'),
 

обратитесь к этому —> https://docs.djangoproject.com/en/3.1/ref/urls /

Комментарии:

1. Теперь он показывает :- ValueError: Field 'id' expected a number but got 'favicon.ico'.

2. @разработчик вы не можете передать строку для получения данных с использованием id. вам нужно пройти номер

3. Я загрузил шаблон.