Python Django重定向不';t附加到以前的模式
url.pyPython Django重定向不';t附加到以前的模式,python,django,forms,django-forms,Python,Django,Forms,Django Forms,url.py url(r'^reg/$', views.reg_view, name='reg'), url(r'^logout/$', views.logout_view, name="logout"), url(r'^search/$', views.search_redirect, name='search_redirect'), url(r'^search/(?P<keyword>.*?)/page/(?P<page>[0-9]+)/$'
url(r'^reg/$', views.reg_view, name='reg'),
url(r'^logout/$', views.logout_view, name="logout"),
url(r'^search/$', views.search_redirect, name='search_redirect'),
url(r'^search/(?P<keyword>.*?)/page/(?P<page>[0-9]+)/$', views.SearchView.as_view(), name='search'),
url(r'^search/(?P<keyword>.*?)/$', views.SearchView.as_view(), name='search'),
url(r'^t/create/$', views.create_topic, name='create_topic'),
url(r'^notifications/$', views.NotificationView.as_view(), name='notifications'),
url(r'^avatar/$', views.upload_avatar, name="upload_avatar"),
class SearchView(ListView):
model = Topic
paginate_by = 30
template_name = 'niji/search.html'
context_object_name = 'topics'
def get_queryset(self):
keywords = self.kwargs.get('keyword')
query = get_query(keywords, ['title'])
return Topic.objects.visible().filter(
query
).select_related(
'user', 'node'
).prefetch_related(
'user__forum_avatar'
).order_by(
get_topic_ordering(self.request)
)
def get_context_data(self, **kwargs):
context = super(ListView, self).get_context_data(**kwargs)
context['title'] = context['panel_title'] = _('Search: ') + self.kwargs.get('keyword')
context['show_order'] = True
return context
def search_redirect(request):
if request.method == 'GET':
keyword = request.GET.get('keyword')
return HttpResponseRedirect(reverse('niji:search', kwargs={'keyword': keyword}))
else:
return HttpResponseForbidden('Post you cannot')
表格
<form class="navbar-form navbar-left" role="search" method="get" action="{% url 'niji:search_redirect' %}">
<div class="form-group">
<input type="text" id="keywordInput" name="keyword" class="form-control" placeholder="{% trans 'Search' %}">
</div>
<button type="submit" id="navSearchBtn" class="btn btn-default">{% trans 'Search' %}</button>
</form>
当用户使用表单提交搜索查询时,url变为example.com/search/。。。而不是example.com/forum/search/。如果我手动输入url后者,它工作得很好,所以我假设它与表单有什么关系?或者搜索重定向功能?显然,它与按钮有关。特别是我认为的身份证。我不知道到底是什么。。但是移除它使它工作了显然,它与按钮有关。特别是我认为的身份证。我不知道到底是什么。。但移除它使它起作用
class SearchView(ListView):
model = Topic
paginate_by = 30
template_name = 'niji/search.html'
context_object_name = 'topics'
def get_queryset(self):
keywords = self.kwargs.get('keyword')
query = get_query(keywords, ['title'])
return Topic.objects.visible().filter(
query
).select_related(
'user', 'node'
).prefetch_related(
'user__forum_avatar'
).order_by(
get_topic_ordering(self.request)
)
def get_context_data(self, **kwargs):
context = super(ListView, self).get_context_data(**kwargs)
context['title'] = context['panel_title'] = _('Search: ') + self.kwargs.get('keyword')
context['show_order'] = True
return context
def search_redirect(request):
if request.method == 'GET':
keyword = request.GET.get('keyword')
return HttpResponseRedirect(reverse('niji:search', kwargs={'keyword': keyword}))
else:
return HttpResponseForbidden('Post you cannot')