![](/img/trans.png)
[英]Trying to view User Profile in Django, but Page Not Found when searching URLs
[英]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
也許一雙新鮮的眼睛可以幫助我發現我正在犯的錯誤?
如果需要任何其他信息,請告訴我,我很樂意提供。 提前一百萬謝謝!
首先嘗試替換:
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.