#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. Я загрузил шаблон.