Почему Django дает мне ошибку 404 только для одного шаблона URL? - PullRequest
0 голосов
/ 15 апреля 2020

Я слежу за обучением Django тогдашнего Бостона, и, похоже, никто не сталкивается с этой проблемой.

Я создал приложение musi c с индексным представлением, которое прекрасно работает. Теперь я хочу создать подробные представления для альбомов musi c.

musi c .urls.py:

from django.urls import path
from . import views

urlpatterns = [
    # /music/
    path(' ', views.index, name='index'),

    # /music/21/
    path('music/<int:album_id>/', views.detail, name='detail'),
]

musi c .views.py:

from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.
def index(request):
return HttpResponse("<h1>This is the music app homepage")

def detail(request):
return HttpResponse("<h2>Detail " + str(album_id) + "</h2>")

Я получаю несколько предупреждений в Visual Код студии, утверждающий, что Django не может импортировать некоторые модули. Но если это было причиной, то url / musi c также должен возвращать ошибку 404?

Ответы [ 3 ]

0 голосов
/ 15 апреля 2020

измените свой путь к этому, потому что в musi c .urls вы уже прошли '/ musi c'

    path(r'<int:album_id>', views.detail, name='detail'),
0 голосов
/ 15 апреля 2020

URL параметры находятся в kwargs он же именованные аргументы

def detail(request, album_id):
    return HttpResponse("<h2>Detail " + album_id + "</h2>")

также вы должны изменить свой путь к URL, так как вы уже включили URL-адреса в верхний lvl URLconf (в противном случае это будет доступно через / music / music / {id}

 path('<int:album_id>/', views.detail, name='detail'),

Я бы посоветовал вам перейти на Django учебник

0 голосов
/ 15 апреля 2020

Используйте snakecase для именования в python. Поэтому измените имя файла и импортируйте его правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...