【问题标题】:Writing a very basic search form in Django在 Django 中编写一个非常基本的搜索表单
【发布时间】:2013-05-30 01:01:30
【问题描述】:

所以我试图完成一些非常简单的事情。我想在我的搜索框中输入一个术语,并将其显示在结果页面上。

我的表单 HTML 是

<form method="get" action="/results/" class="navbar-form pull-right">
<input type="text" id="searchBox" class="input-medium search-query" name="q" placeholder="Search">
<input type="submit" class="btn" value="Search" >
</form>

views.py 看起来像这样:

def search(request):
    query = request.GET['q']
    t = loader.get_template('template/results.html')
    c = Context({ 'query': query,})
    return HttpResponse(t.render(c))

最后结果模板包含:

<div>You searched for: {{ query }} </div>

这是 urls.py

urlpatterns = patterns('',
url(r'^home/$', 'search.views.home'),
url(r'^results/$', 'search.views.results'),

{{ query }} 空间中没有显示任何内容。

【问题讨论】:

  • 你能发布你的urls.py吗?

标签: python html django search django-forms


【解决方案1】:

好的,所以在您的 views.py 中处理搜索的操作应该是 search,但正如我在您的 urls.py 中所怀疑的那样,您不会在任何地方调用 search 方法。

你在哪里执行search方法?

网址应该是这样的:

urlpatterns = patterns('',
url(r'^home/$', 'search.views.home'),
url(r'^results/$', 'search.views.search'),
# or at least have a url for the search view

注意表单中的 action 属性

它是action="/results/"。这意味着结果视图是应该处理表单的人。您也可以将其更改为 action="/search/" 并拥有如下所示的网址:

urlpatterns = patterns('',
url(r'^home/$', 'search.views.home'),
url(r'^results/$', 'search.views.results'),
url(r'^search/$', 'search.views.search'),

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-05
    相关资源
    最近更新 更多