搜索栏在 Django 网站上不起作用

Posted

技术标签:

【中文标题】搜索栏在 Django 网站上不起作用【英文标题】:Search Bar Not Functioning on Django site 【发布时间】:2015-04-06 22:15:58 【问题描述】:

我正在做一个 Django 项目,在我的本地主机站点上,我在该站点上创建了一个搜索栏。但是,当给定输入时,该搜索栏不会返回任何结果。我查看了页面源代码,发现了一些我从未输入过的行:

<input type='hidden' name='csrfmiddlewaretoken' value=(deleted for security purposes on Stack Overflow />

然后我在 Ubuntu 上的 Firefox 浏览器上使用了 Inspect Element 功能,当我在刷新页面后运行网络监视器时,我得到了这个:

GET http://127.0.0.1:8000/static/assets/css/default.css [HTTP/1.0 304 NOT MODIFIED 5ms]
GET http://127.0.0.1:8000/static/assets/js/jquery-2.1.3.min.js [HTTP/1.0 304 NOT MODIFIED 8ms]
GET http://127.0.0.1:8000/static/assets/js/ajax.js [HTTP/1.0 304 NOT MODIFIED 11ms]

当我输入一些输入时,我得到了这一行:

POST http://127.0.0.1:8000/articles/search/ [HTTP/1.0 404 NOT FOUND 13ms]

这是我的 ajax.js 文件:

$(function() 

    $('#search').keyup(function() 

        $.ajax(
            type: "POST",
            url: "/articles/search/",
            data: 
                'search_text' : $('#search').val(),
                'csrfmiddlewaretoken' : 
                $("input[name=csrfmiddlewaretoken]").val()
            ,
            success: searchSuccess,
            dataType: 'html'
        );
    );
);

function searchSuccess(data, textStatus, jqXHR)

    $('#search-results').html(data);
 

在我的 urls.py 文件中,我有这行可以搜索:

url(r'^search/', 'article.views.search_titles'),

在我的 views.py 文件中,我有这个 search_titles 函数:

def search_titles(request):
    if request.method == "POST":
        search_text = request.POST['search_text']
    else:
        search_text = ''

    articles = Article.objects.filter(title__contains=search_text)

    return render_to_response('ajax_search.html', 'articles' : articles)

我不知道我在做什么导致搜索栏无法工作,但如果您需要查看我的更多源代码,请告诉我,我会编辑这篇文章。谢谢你。

【问题讨论】:

【参考方案1】:

你的url 规则应该是

url(r'^articles/search/', 'article.views.search_titles'),

不是

url(r'^search/', 'article.views.search_titles'),

您需要附加 "articles" 以匹配您的 url ajax 调用 "/articles/search/"

【讨论】:

@brown1001 如果此答案对您有所帮助,您可以单击检查标记为正确答案。谢谢。

以上是关于搜索栏在 Django 网站上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的下拉菜单在某些页面上不起作用

搜索栏在 swift 3 中不起作用。无法将类型 (_) -> Bool 的值转换为预期的参数类型 NSPredicate

令牌身份验证在 Django Rest 框架上不起作用

为啥“console.log()”在这个网站上不起作用?

jquery .animate 在我的网站上不起作用

锚定平滑滚动在 Wordpress 网站上不起作用