django将搜索词从post字段传递到URL
你好 我需要将一个字符串从输入字段发送到URL。 我的搜索引擎是在员工。观点 看起来像这样django将搜索词从post字段传递到URL,django,Django,你好 我需要将一个字符串从输入字段发送到URL。 我的搜索引擎是在员工。观点 看起来像这样 def search_in_employees(request, search): print(search) return render(request, "employees/employee_list.html") from django.urls import path, re_path from .import views app_name = 'emp
def search_in_employees(request, search):
print(search)
return render(request, "employees/employee_list.html")
from django.urls import path, re_path
from .import views
app_name = 'employees'
urlpatterns = [
path('create/', views.EmployeesCreateView.as_view(), name='create'),
path('list/', views.EmployeesListView.as_view(), name='list'),
path('update/<pk>/', views.EmployeesUpdateView.as_view(), name='update'),
path('delete/<pk>/', views.EmployeesDeleteView.as_view(), name='delete'),
path('update_db', views.UpdateDataBase.as_view(), name='update_db'),
path('search/<search>', views.search_in_employees, name='search'),
]
<form action="{% url 'employees:search' search %}" method="post">
{% csrf_token %}
<div class="input-group">
<input type="text" class="form-control" name="search" placeholder="Search..." aria-label="Search">
<div class="input-group-append">
<input class="btn btn-primary btn-sm" type="submit" id="button-addon2">
</div>
</div>
</form>
这很简单。
我的URL看起来像这样
def search_in_employees(request, search):
print(search)
return render(request, "employees/employee_list.html")
from django.urls import path, re_path
from .import views
app_name = 'employees'
urlpatterns = [
path('create/', views.EmployeesCreateView.as_view(), name='create'),
path('list/', views.EmployeesListView.as_view(), name='list'),
path('update/<pk>/', views.EmployeesUpdateView.as_view(), name='update'),
path('delete/<pk>/', views.EmployeesDeleteView.as_view(), name='delete'),
path('update_db', views.UpdateDataBase.as_view(), name='update_db'),
path('search/<search>', views.search_in_employees, name='search'),
]
<form action="{% url 'employees:search' search %}" method="post">
{% csrf_token %}
<div class="input-group">
<input type="text" class="form-control" name="search" placeholder="Search..." aria-label="Search">
<div class="input-group-append">
<input class="btn btn-primary btn-sm" type="submit" id="button-addon2">
</div>
</div>
</form>
从django.url导入路径,重新设置路径
从。导入视图
应用程序名称='员工'
URL模式=[
路径('create/',views.EmployeesCreateView.as_view(),name='create'),
路径('list/',views.EmployeesListView.as_view(),name='list'),
路径('update/',views.EmployeesUpdateView.as_view(),name='update'),
路径('delete/',views.EmployeesDeleteView.as_view(),name='delete'),
路径('update_db',views.UpdateDataBase.as_view(),name='update_db'),
路径('search/',views.search_in_employees,name='search'),
]
模板中的表单如下所示
def search_in_employees(request, search):
print(search)
return render(request, "employees/employee_list.html")
from django.urls import path, re_path
from .import views
app_name = 'employees'
urlpatterns = [
path('create/', views.EmployeesCreateView.as_view(), name='create'),
path('list/', views.EmployeesListView.as_view(), name='list'),
path('update/<pk>/', views.EmployeesUpdateView.as_view(), name='update'),
path('delete/<pk>/', views.EmployeesDeleteView.as_view(), name='delete'),
path('update_db', views.UpdateDataBase.as_view(), name='update_db'),
path('search/<search>', views.search_in_employees, name='search'),
]
<form action="{% url 'employees:search' search %}" method="post">
{% csrf_token %}
<div class="input-group">
<input type="text" class="form-control" name="search" placeholder="Search..." aria-label="Search">
<div class="input-group-append">
<input class="btn btn-primary btn-sm" type="submit" id="button-addon2">
</div>
</div>
</form>
{%csrf_令牌%}
代码有点问题,但我只能找到它是什么。错误消息是这样的。
提前感谢您的帮助。
最好的
我在Django或python中找不到这个问题的答案,我使用了js。我写道:
<div class="input-group">
<input type="text" class="form-control" id="search_input" name="search" placeholder="Search..." aria-label="Search">
<div class="input-group-append">
<input class="btn btn-primary btn-sm" type="submit" id="search_summit">
</div>
</div>
<script>
var search_summit = document.getElementById("search_summit")
search_summit.addEventListener('click', function (){
var searchValue = document.getElementById("search_input").value;
if(searchValue.length >= 1){
window.location.href = '/employees/search/'+ searchValue;
};
});
</script>
var search\u summit=document.getElementById(“search\u summit”)
search_summit.addEventListener('click',函数(){
var searchValue=document.getElementById(“搜索输入”).value;
如果(searchValue.length>=1){
window.location.href='/employees/search/'+searchValue;
};
});
我必须删除表单标签,只需使用AddEventListener进行单击,然后将输入重定向到employee视图。我认为您需要做两件事来实现这一点
{%csrf_令牌%}
您需要将搜索参数传递到
“{%url'员工:搜索'[…]%}”
。您能否显示此navigation.html
模板来源的视图。请编辑问题以反映此添加。谢谢刘易斯,我以前试过。