首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django搜索功能

Django搜索功能
EN

Stack Overflow用户
提问于 2017-04-15 05:09:09
回答 2查看 369关注 0票数 0

我在我的网站上添加了一个搜索功能,这样如果你去www.mywebsite.com/ search / that那里,它就会用title=texthere显示所有的歌曲。我想将这个功能添加到我的索引页面。

在我的页面中,有一个输入框,用户可以输入输入和按提交来提交输入,但是它会转到另一个页面。我怎么才能解决这个问题?

urls.py

代码语言:javascript
复制
url(r'^search/(?P<query>[\w\-]+)/$', views.search, name='search'),

index.html

代码语言:javascript
复制
<form action="/search/">
     <input type="text"  name="query" value="me"><br>
     <input type = "submit">
</form>

我想要的是,当用户单击submit按钮时,输入框中的文本应该用作urls.py中的查询--任何帮助都将不胜感激。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-15 05:20:40

编辑:您当前的搜索url也需要传递查询值。但在形式上,只有/search/存在。在表单提交期间,查询值将在request.POST中传递,您将无法像下面这样在url中直接传递查询值。

您需要再添加一个url

代码语言:javascript
复制
url(r'^search/$', views.search, name='search'),

视图中

代码语言:javascript
复制
def search(request, query_via_url=false):
    # if form submission is true
    if request.post:
        query_via_form = request.post.get('query', '')
        ...

    # if query value is passed directly via url
    if query_via_url:
        ....
票数 1
EN

Stack Overflow用户

发布于 2017-04-15 08:54:31

我认为您可以通过使用redirect来完成这项工作。

  1. 在表单中为/search/端点添加一个url: url(r'^search/$',views.search_redirect),
  2. views中: def search_redirect(请求):查询=request.POST.get(‘查询’,'')返回重定向(‘/search/{}/’..format( query ))
  3. index.html中的表单应该使用“POST”方法:

当您提交查询字符串时,search_redirect函数获取query字符串并将请求重定向到您的/search/<query>/函数。

希望这能帮上忙。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43422419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档