Ошибка поиска Haystack + Django CMS «Reduce () пустой последовательности без начального значения» - PullRequest
0 голосов
/ 16 октября 2018

Я относительно новичок в мире Джанго.Наш клиент хочет добавить функцию поиска на свой сайт, поэтому я интегрирую Haystack и Aldryn Search, как описано здесь:

https://github.com/aldryn/aldryn-search

Я также прошел здесь:https://django -haystack.readthedocs.io / en / v2.6.0 / tutorial.html

Расположение исключения: env / lib / python2.7 / site-packages / haystack/backends/simple_backend.py в поиске, строка 79

Вот несколько полезных информационных фрагментов:

urls.py -

(r'^search/', include('haystack.urls')),

templates / search /search.html -

{% extends 'base.html' %}

{% block content %}
<div class="primary-content">
<div class="container constrained">
    <form method="get" class="paragraph" action=".">
        {{ form.as_table }}
        <div class="text-right">
            <button type="submit" class="button">
                Search
            </button>
        </div>

        {% if query %}
            <h3>Results</h3>

            {% for result in page.object_list %}
                <div class="post-preview paragraph">
                    <h3>
                        <a href="{{ result.object.get_absolute_url }}">{{ result.object.title }}</a>
                    </h3>
                </div>
            {% empty %}
                <p>No results found.</p>
            {% endfor %}

            {% if page.has_previous or page.has_next %}
                <div>
                    {% if page.has_previous %}<a href="?q={{ query }}&amp;page={{ page.previous_page_number }}">{% endif %}&laquo; Previous{% if page.has_previous %}</a>{% endif %}
                    |
                    {% if page.has_next %}<a href="?q={{ query }}&amp;page={{ page.next_page_number }}">{% endif %}Next &raquo;{% if page.has_next %}</a>{% endif %}
                </div>
            {% endif %}
        {% else %}
            {# Show some example queries to run, maybe query syntax, something else? #}
        {% endif %}
    </form>
</div>
</div>
{% endblock %}

settings.py -

HAYSTACK_CONNECTIONS = {
'default': {
    'ENGINE': 'haystack.backends.simple_backend.SimpleEngine',
},
}
HAYSTACK_ROUTERS = ['aldryn_search.router.LanguageRouter', ]
ALDRYN_SEARCH_REGISTER_APPHOOK = True
ALDRYN_SEARCH_PAGINATION = 20
ALDRYN_SEARCH_CMS_PAGE = True

Кроме того, оба значения 'haystack' и 'aldryn_search' находятся в INSTALLED_APPS.

Когда я запускаю update_index- удалить это, кажется, работает по большей части:

Indexing 5 locations
Indexing 2 People
Indexing 16 articles

Похоже, я все сделал правильно в соответствии с документацией.Но я не должен быть.У нас есть только один язык на сайте, что делает документацию немного трудной для понимания, потому что я не уверен, есть ли у меня дополнительные вещи, которые нужны только для мультиязычности.

Трассировка стека:

['/build/healthdirect',
 '/build/env/lib/python27.zip',
 '/build/env/lib/python2.7',
 '/build/env/lib/python2.7/plat-darwin',
 '/build/env/lib/python2.7/plat-mac',
 '/build/env/lib/python2.7/plat-mac/lib-scriptpackages',
 '/build/env/lib/python2.7/lib-tk',
 '/build/env/lib/python2.7/lib-old',
 '/build/env/lib/python2.7/lib-dynload',

'/ System / Library / Frameworks / Python.framework / Versions / 2.7 / lib / python2.7', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7 / plat-darwin ',' /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk ',' /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac ',' /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages ',' / build / env / lib/python2.7/site-packages']

...