当我单击站点http://junjob.ru/上的“搜索”按钮时 我去http://junjob.ru/search/?q=&q2=ALL
如何在此链接中将文本“搜索”更改为“ my_search”? 我需要http://junjob.ru/my_search/?q=&q2=ALL
我正在使用django网络框架。修复应该支持来自表单的查询
我的代码
vacancy_list.html
<div class="container" style="margin-top: 40px; font-size: 2rem; padding-left: 0px;">
<form action="{% url 'search_results' %}" method="get">
<div class="row">
<div class="col-lg-8 col-md-6 col-xs-12">
<input name="q" type="text" placeholder="Search..." class="form-control">
</div>
<div class="col-lg-3 col-md-4 col-xs-12">
<select name="q2" class="form-control" id="exampleFormControlSelect1">
<option>Other</option>
</select>
</div>
<div class="col-lg-1 col-md-2 col-xs-12" style="padding-left: 0px;">
<button class="btn btn-primary">Search</button> <!-- BUTTON -->
</div>
</div>
</form>
</div>
views.py
class HomePageView(ListView):
model = Vacancy
template_name = 'vacancy_list/vacancy_list.html'
paginate_by = 5
page_kwarg = 'vacancy'
context_object_name = 'vacancies'
queryset = Vacancy.objects.order_by('-published_date')
def paginate_queryset(self, queryset, page_size):
"""Paginate the queryset, if needed."""
paginator = self.get_paginator(
queryset, page_size, orphans=self.get_paginate_orphans(),
allow_empty_first_page=self.get_allow_empty())
page_kwarg = self.page_kwarg
page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1
try:
page_number = int(page)
except ValueError:
if page == 'last':
page_number = paginator.num_pages
else:
raise Http404(_('Page is not “last”, nor can it be converted to an int.'))
try:
page = paginator.page(page_number)
return (paginator, page, page.object_list, page.has_other_pages())
except InvalidPage as e:
raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {
'page_number': page_number,
'message': str(e)
})
def vacancy_detail(request, pk):
vacancy = get_object_or_404(Vacancy, pk=pk)
print("ZZZZZZ: {};{};VACANCY;{};\n".format(datetime.now().strftime('%Y-%m-%d %H:%M:%S'), request.user, pk))
log_to_file("{};{};VACANCY;{};\n".format(datetime.now().strftime('%Y-%m-%d %H:%M:%S'), request.user, pk))
return render(request, 'vacancy_list/vacancy_detail.html', {'vacancy': vacancy})
urls.py
urlpatterns = [
path('', HomePageView.as_view(), name='vacancy_list'),
path('search/', SearchResultsView.as_view(), name='search_results'),
path('vacancy/<int:pk>/', views.vacancy_detail, name='vacancy_detail'),
path('company/<int:pk>', views.company_detail, name='company_detail'),
path('vacancy/<int:pk>/request', contact_us, name='contact_us'),
...
答案 0 :(得分:3)
你应该换个鼻涕虫
urlpatterns = [
path('my_search/', SearchResultsView.as_view(), name='search_results'),
接下来,您必须进行迁移和迁移
答案 1 :(得分:1)
如果要更改网址,只需编辑urls.py
文件:
urlpatterns = [
path('my_search/', SearchResultsView.as_view(), name='search_results'),
...
请记住,由于您使用的是命名网址,因此无需硬编码它们,而无需更改html模板。
答案 2 :(得分:1)
path('my_search/', SearchResultsView.as_view(), name='search_results')