Я работаю над приложением в Django 1.11, над функцией поиска.Я установилasticsearch - здесь все работает.
В base.html и под URL 127.0.0.1:8000
- у меня есть форма для поиска, и я хотел бы сохранить эту форму здесь.С другой стороны, у меня есть поисковое приложение с view, url, template - под url 127.0.0.1:8000/search/
- здесь работает поиск.
Чтобы решить эту проблему - найдите на главной странице и перенаправьте на сайт с результатами, которые я пыталсяиспользуйте атрибут action
в форме django.
форму в base.html
<form action="{% url 'search:search' %}" method="post">
{% csrf_token %}
<div class="input-group">
<input type="text" class="form-control" id="q" {% if request.GET.q %}value="{{ request.GET.q }}"{% endif %} name="q" placeholder="Search">
<div class="input-group-append">
<button class="btn btn-outline-primary" type="button">GO</button>
</div>
</div>
</form>
представление в поисковом приложении
def search(request):
q = request.GET.get('q')
if q:
posts = PostDocument.search().query('match', title=q)
else:
posts = ''
return render(request, 'search/search.html', {'posts': posts})
шаблон с результатами
{% extends 'base.html' %}
{% block content %}
{% for p in posts %}
<a href="#">{{ p.title }}</a>
{% endfor %}
{% endblock content %}
{% block sidebar %}{% endblock sidebar %}