Python Django:与#x27相反;搜索';没有找到';搜索';不是有效的视图函数或模式名称

Python Django:与#x27相反;搜索';没有找到';搜索';不是有效的视图函数或模式名称,python,django,Python,Django,我是。试着去。基于 并弹出错误消息“未找到'Search'的反向。Search'不是有效的视图函数或模式名称。” 我已经搜索了大部分的建议,要求我检查拼写是否错误 像url中的“搜索”或渲染中的my search.html 然而,我已经尝试了所有的解决方案,但仍然无法奏效 这是我的一些代码 URL.py: from django.contrib import admin from django.urls import path from pages.views import home_view

我是。试着去。基于

并弹出错误消息“未找到'Search'的反向。Search'不是有效的视图函数或模式名称。”

我已经搜索了大部分的建议,要求我检查拼写是否错误

像url中的“搜索”或渲染中的my search.html

然而,我已经尝试了所有的解决方案,但仍然无法奏效

这是我的一些代码

URL.py:

from django.contrib import admin
from django.urls import path

from pages.views import home_view, contact_view, about_view
from products.views import product_detail_view, product_create_view, vendor_data,search_product

urlpatterns = [
    path('', home_view, name='home'),
    path('contact/', contact_view),
    path('about/', about_view),
    path('create/', product_create_view),
    path('product/', product_detail_view),
    path('search/', search_product),
    path('vendor/', vendor_data),
    path('admin/', admin.site.urls),

]
views.py

from django.shortcuts import render

from .models import Product

from .forms import ProductForm, RawProductForm,VendorForm


def search_product(request):
    if  request.method == "POST":
        query_name = request.POST.get('title', None)
        if query_name:
            results = Product.objects.filter(name__contains=query_name)
            return render(request, 'products/search.html', {"results":results})

    return render(request, 'products/search.html')
search.html

<!DOCTYPE html>
<html>
<head>
    <title>Django Search</title>
</head>
<body>



<form action="{% url 'search' %}" method="POST">
    {% csrf_token %} 
    <input type="text" name="name">
    <input type="submit" name="submit" value="Search">
</form>



{% for result in results %}

    <p>{{result.name}}</p>

{% endfor %}

</body>
</html>

Django搜索
{%csrf_令牌%}
{结果中的结果为%}
{{result.name}

{%endfor%}
下面是我的文件夹,以备不时之需


您需要使用
name=…
参数指定
url.py
的名称:

urlpatterns = [
    # …,
    #                              name ↓
    path('search/', search_product, name='search'),
    # …
]
urlpatterns=[
# …,
#名称&向下箭头;
路径('search/',search_product,name='search'),
# …

]
更改此文件<代码>URL.py

from django.contrib import admin
from django.urls import path

from pages.views import home_view, contact_view, about_view
from products.views import product_detail_view, product_create_view, vendor_data,search_product

urlpatterns = [
    path('', home_view, name='home'),
    path('contact/', contact_view),
    path('about/', about_view),
    path('create/', product_create_view),
    path('product/', product_detail_view),
    path('search/', search_product, name = 'search'), # changed here
    path('vendor/', vendor_data),
    path('admin/', admin.site.urls),

]

请共享您的
url.py
。请共享正确的URL.pyomg让我来修复它,但它没有注意到它的工作!!谢谢,但是我仍然不知道它实际上是如何工作的,如果将来发生一些情况,我需要学习什么吗?你应该对所有类型的URL使用name参数,因此,在HTML模板中编写URL将很容易,或者您应该始终编写绝对URL,甚至它对生产环境非常有用。非常感谢