找不到搜索模板页



我正试图在我的项目中实现搜索,这样用户就可以轻松地搜索任何内容,但我一直收到找不到页面错误。这些错误似乎来自我的urls.py,但我不知道具体在哪里。

以下是我的代码

urls.py

from .import views
app_name = 'app'
urlpatterns = [
path('', views.product_list, name='product_list'),
path('<slug:category_slug>/', views.product_list, name='product_list_category'),
path('search/', views.search_list, name='search_list'),
path('<int:id>/<slug:slug>/', views.product_details, name='product_details'),
]

views.py

from .models import Category, Product
from cart.forms import CartAddProductForm
from django.db.models import Q
# Create your views here.
def product_list(request, category_slug=None):
category = None
categories = Category.objects.all()  
products = Product.objects.filter(available=True)
if category_slug:
category = get_object_or_404(Category, slug=category_slug)
products = products.filter(category=category)
return render(request, 'products/list.html', {'category': category, 'categories': categories, 'products': products})

def product_details(request, id, slug):
product = get_object_or_404(Product, id=id, slug=slug, available=True)
cart_product_form = CartAddProductForm()
return render(request, 'products/detail.html',  {'product': product, 'cart_product_form': cart_product_form})
def search_list(request):
search_post = request.GET.get('q')
search_query = Product.objects.filter(Q(name__icontains=search_post) | Q(category__name__icontains=search_post))
return render(request, 'products/search.html', {'search_post': search_post, 'search_query': search_query, 'category': category, 'categories': categories})

url解析器返回与传入路径匹配的第一个模式。

product_list_category模式与search/匹配,因此search_list永远不会被解析,请将search_list模式放在product_list_category之前

urlpatterns = [
...
path('search/', views.search_list, name='search_list'),
path('<slug:category_slug>/', views.product_list, name='product_list_category'),
...
]

最新更新