Python Django重定向不';t附加到以前的模式

Python 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.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]+)/$', 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')