【发布时间】:2014-07-27 23:29:03
【问题描述】:
这变得非常令人沮丧,就像我迄今为止所有的 Django 表单努力一样......
我有一个搜索栏表单,它应该将用户发送到一个 url '/project/search/<query>/',如果我输入一个 url 但我的表单没有正确映射,该 url 工作正常。我首先在搜索结果页面中实现这一点,它仍然有一个搜索栏,每当我在搜索栏中输入一个值时,我都会被重定向到“/project/search/”。我哪里出错了?我花了整整两天的时间都无济于事。
我真的很挣扎,我不知道我做错了什么。我希望我至少有一个错误或需要修复的东西,但这就是行不通。
这是我的表单类和视图:
from django import forms
class SearchForm(forms.Form):
search_string = forms.CharField(initial='Search Article Text',max_length=100)
def search(request, search_query):
form = SearchForm()
context = RequestContext(request)
search_string = search_query.replace('_',' ')
search_terms = search_query.split('_')
search_results = Article.objects.all()
for term in search_terms:
search_results = search_results.filter(article__icontains=term)
context_dict = {
'search_string':search_string,
'search_results':search_results,
'form':form,
}
if request.method == 'POST':
form = SearchForm(request.POST)
context_dict['form'] = form
if form.is_valid():
search_string = form.cleaned_data['search_string']
search_query = search_string.replace(' ','_')
###return HttpResponseRedirect(reverse('search', args=(search_query,)))
search_url = '/project/search/' + search_query + '/'
return HttpResponseRedirect(search_url)
return render_to_response('search.html', context_dict, context)
html:
<form action='/beacon/search/' class="navbar-form navbar-right" method='POST'>
<div class="form-group">
{% csrf_token %}
{{ form.search_string }}
</div>
<input type='submit' value='Submit' class='btn btn-default'/>
</form>
【问题讨论】:
标签: python html django twitter-bootstrap python-3.x