我不太明白为什么我不能用 Django 访问 URL
I can't quite figure out why I can' access a URL with Django
我正在尝试访问 URL 结尾的 basket/
但是当我转到该页面时,我收到如下所示的 404 错误。
我知道这个错误不是由于 Django 找不到模板而引发的,它与我的 product_detail
视图有关。
这是我链接到购物车的网址/
core/urls.py
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
app_name = 'core'
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('main_store.urls', namespace='main_store')),
path('basket/', include('basket.urls', namespace='basket')),
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
basket/urls.py
from django.urls import path
from . import views
app_name = 'basket'
urlpatterns = [
path('', views.basket_summary, name='basket_summary')
]
这里是basket/views.py:
from django.shortcuts import render
def basket_summary(request):
return render(request, 'main_store/basket/summary.html')
这是抛出错误的视图。 main_store/views.py:
def product_detail(request, slug):
product = get_object_or_404(Product, slug=slug, in_stock=True)
return render(request, 'main_store/products/single_product.html', {'product': product})
如果有人能阐明问题所在或我做错了什么,将不胜感激。提前致谢。
你的 main_store.urls
有 slug 查找,任何单词都会传递给它,你应该像这样 url 向上移动
urlpatterns = [
path('admin/', admin.site.urls),
path('basket/', include('basket.urls', namespace='basket')),
path('', include('main_store.urls', namespace='main_store')),
]
我正在尝试访问 URL 结尾的 basket/
但是当我转到该页面时,我收到如下所示的 404 错误。
我知道这个错误不是由于 Django 找不到模板而引发的,它与我的 product_detail
视图有关。
这是我链接到购物车的网址/
core/urls.py
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
app_name = 'core'
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('main_store.urls', namespace='main_store')),
path('basket/', include('basket.urls', namespace='basket')),
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
basket/urls.py
from django.urls import path
from . import views
app_name = 'basket'
urlpatterns = [
path('', views.basket_summary, name='basket_summary')
]
这里是basket/views.py:
from django.shortcuts import render
def basket_summary(request):
return render(request, 'main_store/basket/summary.html')
这是抛出错误的视图。 main_store/views.py:
def product_detail(request, slug):
product = get_object_or_404(Product, slug=slug, in_stock=True)
return render(request, 'main_store/products/single_product.html', {'product': product})
如果有人能阐明问题所在或我做错了什么,将不胜感激。提前致谢。
你的 main_store.urls
有 slug 查找,任何单词都会传递给它,你应该像这样 url 向上移动
urlpatterns = [
path('admin/', admin.site.urls),
path('basket/', include('basket.urls', namespace='basket')),
path('', include('main_store.urls', namespace='main_store')),
]