【问题标题】:Implement search in django在 django 中实现搜索
【发布时间】:2014-09-12 10:51:27
【问题描述】:

我有这个 html 搜索表单,我想将它链接到我的搜索视图以使其工作。

<form class="navbar-form navbar-left" role="search" >
    <div class="form-group">
        <input type="text" class="form-control" placeholder="Search" action = "/search/">
    </div>
    <button type="submit" class="btn btn-default">Submit</button>
</form>

这里是视图。

def searchResults(request, drname):
    # drname = request.GET.get('drname')
    doctors = Doctor.objects.filter(name__contains=drname)
    clinic = Doctor.objects.filter(clinic__name__contains=drname)
    d = getVariables(request)
    d['doctors'] = doctors
    d['doctors_by_clinic'] = doctors
    return render_to_response('meddy1/doclistings.html',d)

urls.py

url(r'^search/(?P<drname>\w+)/$', views.searchResults, name='searchResults'),  

【问题讨论】:

    标签: python django search


    【解决方案1】:
    1. HTML。 &lt;form&gt; 必须有 action 属性,而不是 &lt;input&gt;。另外,将搜索字符串作为 get 参数发送,不要将其包含在 url 中(将 name 属性添加到 &lt;input&gt;):

      <form class="navbar-form navbar-left" role="search" action="/search/">
          <div class="form-group">
              <input type="text" class="form-control" placeholder="Search" name="drname">
          </div>
          <button type="submit" class="btn btn-default">Submit</button>
      </form>
      
    2. urls.py。删除这部分(?P&lt;drname&gt;\w+)/:

      url(r'^search/$', views.searchResults, name='searchResults'),
      
    3. views.py。从GET参数获取搜索字符串:

      def searchResults(request):
          drname = request.GET.get('drname')
          doctors = Doctor.objects.filter(name__contains=drname)
          clinic = Doctor.objects.filter(clinic__name__contains=drname)
          d = getVariables(request)
          d['doctors'] = doctors
          d['doctors_by_clinic'] = doctors
          return render_to_response('meddy1/doclistings.html',d)
      

    【讨论】:

    • 非常感谢您的详尽回答。非常感谢您的帮助!
    【解决方案2】:

    action 进入 form 元素,而不是输入。

    【讨论】:

      猜你喜欢
      • 2023-03-17
      • 2019-11-20
      • 2021-10-13
      • 1970-01-01
      • 1970-01-01
      • 2018-11-10
      • 1970-01-01
      • 2018-10-12
      • 1970-01-01
      相关资源
      最近更新 更多