Python Django:与#x27相反;搜索';没有找到';搜索';不是有效的视图函数或模式名称
我是。试着去。基于 并弹出错误消息“未找到'Search'的反向。Search'不是有效的视图函数或模式名称。” 我已经搜索了大部分的建议,要求我检查拼写是否错误 像url中的“搜索”或渲染中的my search.html 然而,我已经尝试了所有的解决方案,但仍然无法奏效 这是我的一些代码 URL.py: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
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,甚至它对生产环境非常有用。非常感谢