Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django将搜索词从post字段传递到URL_Django - Fatal编程技术网

django将搜索词从post字段传递到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

你好

我需要将一个字符串从输入字段发送到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>
这很简单。 我的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视图。

我认为您需要做两件事来实现这一点

  • 将方法中的“搜索”属性设置为可选,并

  • 为URL添加第二个URL条目,但不包含可在表单操作中使用的搜索参数

    路径('search/',views.search_in_employees,name='search'), 路径('search',views.form_employees,name='search-form')

    
    {%csrf_令牌%}
    

  • 您需要将搜索参数传递到
    “{%url'员工:搜索'[…]%}”
    。您能否显示此
    navigation.html
    模板来源的视图。请编辑问题以反映此添加。谢谢刘易斯,我以前试过。