【问题标题】:I can't quite figure out why I can' access a URL with Django我不太明白为什么我不能用 Django 访问 URL
【发布时间】:2021-11-21 06:57:11
【问题描述】:

我正在尝试访问以 basket/ 结尾的 URL,但是当我转到该页面时,我收到如下所示的 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')
]

这是购物篮/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})

如果有人能阐明问题所在或我做错了什么,将不胜感激。提前致谢。

【问题讨论】:

  • 显示summary.html html 文件
  • 它确实找到了模板,只是get_object_or_404(Product, slug=slug, in_stock=True) 没有找到给定 slug 提高 404 的产品

标签: python django django-views django-urls


【解决方案1】:

您的main_store.urls 已通过 slug 查找,任何单词都会传递给它,您应该像这样向上移动购物篮网址

urlpatterns = [
    path('admin/', admin.site.urls),
    path('basket/', include('basket.urls', namespace='basket')),
    path('', include('main_store.urls', namespace='main_store')),
]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 2018-06-30
    • 1970-01-01
    • 2021-05-17
    • 2014-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多