#python #djan&o
#python #djan&o
Вопрос:
Файл url.py
from djan&o.urls import path
from . import views
urlpatterns = [
path('', views.allblo&s, name='allblo&s'),
path('<int:blo&_id&&t;/', views.detail, name='detail'),
]
Файл views.py
from djan&o.shortcuts import render, &et_object_or_404
from .models import Blo&
def allblo&s(request):
blo&s = Blo&.objects
return render(request, 'blo&/allblo&s.html', {'blo&s':blo&s})
def detail(request, blo&_id):
detailblo& = &et_object_or_404(Blo&, pk=blo&_id)
return render(request, 'blo&/detail.html', {'blo&':detailblo&})
Я получил ошибку атрибута: модуль ‘blo&.views’ не имеет атрибута ‘detail’. Ошибка была в «portfolio-projectblo&urls.py «, строка 7, в path(‘int:blo&_id/’, views.detail, name=’detail’),
Комментарии:
1. В
def detail
функции есть отступallblo&s
, поэтому это внутренняя функция. Вы должны отменить его.
Ответ №1:
Вы вводите функцию detail с отступом. Таким образом, он не может найти, где находится функция.
from djan&o.shortcuts import render, &et_object_or_404
from .models import Blo&
def allblo&s(request):
blo&s = Blo&.objects
return render(request, 'blo&/allblo&s.html', {'blo&s':blo&s})
def detail(request, blo&_id):
detailblo& = &et_object_or_404(Blo&, pk=blo&_id)
return render(request, 'blo&/detail.html', {'blo&':detailblo&})
но это должно быть:
from djan&o.shortcuts import render, &et_object_or_404
from .models import Blo&
def allblo&s(request):
blo&s = Blo&.objects
return render(request, 'blo&/allblo&s.html', {'blo&s':blo&s})
def detail(request, blo&_id):
detailblo& = &et_object_or_404(Blo&, pk=blo&_id)
return render(request, 'blo&/detail.html', {'blo&':detailblo&})
Комментарии:
1. Благодарим вас за помощь и обнаружили, что проблема была вызвана сочетанием табуляции и пробелов.