簡體   English   中英

嘗試查看產品詳細信息頁面時 Django 3 中的 URL 問題

[英]Issues with URLs in Django 3 when trying to view products detail page

Django 的新手,我試圖使用我的 URLs.py 中的以下代碼簡單地訪問我的產品詳細信息頁面:

網址.py:

from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static
from products import views
import carts
from carts.views import CartView
from django.urls import path


urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.home, name='home'),
    path('products/', views.all, name='products'),
    path('s/', views.search, name='search'),
    path('products/<slug:slug>', views.single, name='single_product'), <----This is the page I want to get to
    path('cart/', carts.views.CartView, name='cart'),
]
if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
    

如果有幫助,這是我在模板中使用的鏈接,用於訪問產品顯示頁面<a href="{{ product.get_absolute_url }}" class="btn btn-primary">View</a>

這是我的觀點:

def single(request, slug):
    try:
        product = Product.objects.get(slug=slug)
        images = ProductImage.objects.filter(product=product)
        context = {'product': product, "images": images}
        template = 'products/single.html'
        return render(request, template, context)
    except:
        raise Http404

但是當嘗試訪問此頁面時,我收到以下 404 錯誤: 在此處輸入圖像描述

也許一雙新鮮的眼睛可以幫助我發現我正在犯的錯誤?

如果需要任何其他信息,請告訴我,我很樂意提供。 提前一百萬謝謝!

首先嘗試替換:

    path('products/<slug:slug>', views.single, name='single_product'),

    path('products/<slug:slug>/', views.single, name='single_product'),

Django 默認情況下會自動在 url 的末尾附加一個斜杠 (/),您向我們展示的圖像顯示了一個 url 以斜杠結尾,而您定義的路徑不包含斜杠。 我只是試圖重現它,這使它工作。

然后如果它仍然不起作用,請仔細檢查您是否使用正確的 slug 使用 shell 找到您的產品,因為每當發生異常時您都會引發 404。 您甚至可以考慮刪除 try/except 以檢查它是否真的引發了不同的異常。

也許最后一個斜杠('/')是問題所在,試試沒有它的 url: http://127.0.0.1/products/product-one

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM