Django и Python: ошибка атрибута: модуль ‘blog.views’ не имеет атрибута ‘detail’

#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. Благодарим вас за помощь и обнаружили, что проблема была вызвана сочетанием табуляции и пробелов.